module.exports = { before: (client) => { client.resizeWindow(1600, 1200); }, afterEach: (client, done) => { if (client.currentTest.results.failed) { throw new Error('Test Case failed, skipping all the rest'); } done(); }, after: (client) => { client.end(); }, 'admin logs in': (client) => { const adminPage = client.page.admin(); const {testData: {admin}} = client.globals; adminPage.navigateAndLogin(admin); }, 'navigate to the embed stream': (client) => { const embedStream = client.page.embedStream(); embedStream .navigate() .ready(); }, 'admin bans user': (client) => { const embedStream = client.page.embedStream(); const comments = embedStream.section.comments; comments.section.mod .waitForElementVisible('@arrow') .click('@arrow') .waitForElementVisible('@menu') .waitForElementVisible('@banButton') .click('@banButton'); embedStream .waitForElementVisible('@banDialog') .waitForElementVisible('@banDialogConfirmButton') .click('@banDialogConfirmButton') .waitForElementNotVisible('@banDialog'); }, 'admin logs out': (client) => { const comments = client.page.embedStream().section.comments; comments .logout(); }, 'user logs in': (client) => { const {testData: {user}} = client.globals; const comments = client.page.embedStream().section.comments; comments .openLoginPopup((popup) => popup.login(user)); }, 'user account is banned, should see restricted message box': (client) => { const embedStream = client.page.embedStream(); const comments = embedStream.section.comments; comments .waitForElementVisible('@restrictedMessageBox'); }, 'user logs out': (client) => { const embedStream = client.page.embedStream(); const comments = embedStream.section.comments; comments .logout(); }, 'admin logs in (2)': (client) => { const adminPage = client.page.admin(); const {testData: {admin}} = client.globals; adminPage.navigateAndLogin(admin); }, 'admin goes to community': (client) => { const adminPage = client.page.admin(); adminPage .goToCommunity() .goToPeople(); }, 'admin removes ban from user': (client) => { const people = client.page.admin() .section.community .section.people; people .waitForElementVisible('@firstRow') .waitForElementVisible('@dropdownStatus') .click('@dropdownStatus') .waitForElementVisible('@dropdownStatusActive') .click('@optionActive'); }, 'admin logs out 2': (client) => { client.page.admin().logout(); }, 'navigate to the embed stream 2': (client) => { const embedStream = client.page.embedStream(); embedStream .navigate() .ready(); }, 'user logs in 2': (client) => { const {testData: {user}} = client.globals; const comments = client.page.embedStream().section.comments; comments .openLoginPopup((popup) => popup.login(user)); }, 'user should be able to comment': (client) => { const embedStream = client.page.embedStream(); const comments = embedStream.section.comments; comments .waitForElementVisible('@commentBoxTextarea') .waitForElementVisible('@commentBoxPostButton'); }, };