From 7a943c295c4c8b157c040bcc30fd1257c985dbff Mon Sep 17 00:00:00 2001 From: Martin Schoeler Date: Fri, 21 Oct 2016 17:15:02 -0200 Subject: [PATCH] [WIP]added more tests --- tests/pageobjects/flex-tab.page.js | 49 ++++++++++- tests/steps/4-resolutions.js | 4 +- tests/steps/6-channel.js | 128 +++++++++++++++++++++++++++++ 3 files changed, 178 insertions(+), 3 deletions(-) create mode 100644 tests/steps/6-channel.js diff --git a/tests/pageobjects/flex-tab.page.js b/tests/pageobjects/flex-tab.page.js index 90f952dabcb..4cb9482e149 100644 --- a/tests/pageobjects/flex-tab.page.js +++ b/tests/pageobjects/flex-tab.page.js @@ -5,6 +5,10 @@ class FlexTab extends Page { get membersTabContent() { return browser.element('.animated'); } get userSearchBar() { return browser.element('#user-add-search'); } get removeUserBtn() { return browser.element('.remove-user'); } + get setOwnerBtn() { return browser.element('.set-owner'); } + get setModeratorBtn() { return browser.element('.set-moderator'); } + get muteUserBtn() { return browser.element('.mute-user'); } + get viewAllBtn() { return browser.element('.button.secondary.back'); } get startVideoCall() { return browser.element('.start-video-call'); } get startAudioCall() { return browser.element('.start-audio-call'); } get showAll() { return browser.element('.see-all'); } @@ -39,6 +43,22 @@ class FlexTab extends Page { get archiveBtn() { return browser.element('.clearfix:last-child .icon-pencil'); } get archiveRadio() { return browser.element('.editing'); } get archiveSave() { return browser.element('.save'); } + get editNameBtn() { return browser.element('[data-edit="name"]'); } + get editTopicBtn() { return browser.element('[data-edit="topic"]'); } + get editDescriptionBtn() { return browser.element('[data-edit="description"]'); } + get editNotificationBtn() { return browser.element('[data-edit="desktopNotifications"]'); } + get editMobilePushBtn() { return browser.element('[data-edit="mobilePushNotifications"]'); } + get editEmailNotificationBtn() { return browser.element('[data-edit="emailNotifications"]'); } + get editUnreadAlertBtn() { return browser.element('[data-edit="unreadAlert"]'); } + + get editNameTextInput() { return browser.element('.channel-settings input[name="name"]'); } + get editTopicTextInput() { return browser.element('.channel-settings input[name="topic"]'); } + get editDescriptionTextInput() { return browser.element('.channel-settings input[name="description"]'); } + get firstSetting() { return browser.element('.clearfix li:nth-child(1) .current-setting'); } + get secondSetting() { return browser.element('.clearfix li:nth-child(2) .current-setting'); } + get thirdSetting() { return browser.element('.clearfix li:nth-child(3) .current-setting'); } + get editNameTextInput() { return browser.element('.channel-settings input[name="name"]'); } + get editNameSave() { return browser.element('.channel-settings .save'); } get confirmBtn() { return browser.element('.confirm'); } @@ -60,7 +80,7 @@ class FlexTab extends Page { addPeopleToChannel(user) { this.userSearchBar.waitForVisible(); this.userSearchBar.setValue(user); - browser.waitForVisible('.-autocomplete-item', 2000); + browser.waitForVisible('.-autocomplete-item', 5000); browser.click('.-autocomplete-item'); } @@ -71,6 +91,33 @@ class FlexTab extends Page { browser.pause(300); this.removeUserBtn.click(); } + + setUserOwner(user) { + const userEl = browser.element('.flex-tab button[title="'+user+'"]'); + userEl.waitForVisible(); + userEl.click(); + browser.pause(300); + this.setOwnerBtn.waitForVisible(5000); + this.setOwnerBtn.click(); + this.viewAllBtn.click(); + } + + setUserModerator(user) { + const userEl = browser.element('.flex-tab button[title="'+user+'"]'); + userEl.waitForVisible(); + userEl.click(); + browser.pause(300); + this.setModeratorBtn.click(); + this.viewAllBtn.click(); + } + + muteUser(user) { + const userEl = browser.element('.flex-tab button[title="'+user+'"]'); + userEl.waitForVisible(); + userEl.click(); + browser.pause(300); + this.muteUserBtn.click(); + } } module.exports = new FlexTab(); diff --git a/tests/steps/4-resolutions.js b/tests/steps/4-resolutions.js index 9b43f7fd06c..893f4ccaf0f 100644 --- a/tests/steps/4-resolutions.js +++ b/tests/steps/4-resolutions.js @@ -90,8 +90,8 @@ describe('resolutions tests', ()=> { it('change the resolution', ()=> { browser.windowHandleSize({ - width: 1280, - height: 800 + width: 1450, + height: 900 }); }); diff --git a/tests/steps/6-channel.js b/tests/steps/6-channel.js new file mode 100644 index 00000000000..8cb26d32006 --- /dev/null +++ b/tests/steps/6-channel.js @@ -0,0 +1,128 @@ +/* eslint-env mocha */ +/* eslint-disable func-names, prefer-arrow-callback */ + + +import loginPage from '../pageobjects/login.page'; +import flexTab from '../pageobjects/flex-tab.page'; +import mainContent from '../pageobjects/main-content.page'; +import sideNav from '../pageobjects/side-nav.page'; + +import {username, email, password} from '../test-data/user.js'; +import {PublicChannelName, privateChannelName} from '../test-data/channel.js'; +import {targetUser} from '../test-data/interactions.js'; + +describe('channel settings', ()=> { + + describe('channel info tab', ()=> { + it('open the channel', ()=> { + sideNav.openChannel(PublicChannelName); + }); + + it('open the channel info tab', ()=> { + flexTab.channelTab.waitForVisible(); + flexTab.channelTab.click(); + }); + + /*it('should show the old name', ()=> { + flexTab.firstSetting.waitForVisible(); + flexTab.firstSetting.getText().should.equal(PublicChannelName); + }); + + it('click the edit name', ()=> { + flexTab.editNameBtn.waitForVisible(); + flexTab.editNameBtn.click(); + }); + + it('edit the name input', ()=> { + flexTab.editNameTextInput.waitForVisible(); + flexTab.editNameTextInput.setValue('NAME-EDITED-'+PublicChannelName); + }); + + it('save the name', ()=> { + flexTab.editNameSave.click(); + + }); + + it('should show the new name', ()=> { + flexTab.firstSetting.getText().should.equal('NAME-EDITED-'+PublicChannelName); + });*/ + + it('click the edit topic', ()=> { + browser.pause(500); + flexTab.editTopicBtn.waitForVisible(5000); + flexTab.editTopicBtn.click(); + }); + + it('edit the topic input', ()=> { + flexTab.editTopicTextInput.waitForVisible(5000); + flexTab.editTopicTextInput.setValue('TOPIC EDITED'); + }); + + it('save the topic', ()=> { + flexTab.editNameSave.click(); + }); + + it('should show the new topic', ()=> { + flexTab.secondSetting.getText().should.equal('TOPIC EDITED'); + }); + + it('click the edit description', ()=> { + flexTab.editDescriptionBtn.waitForVisible(); + flexTab.editDescriptionBtn.click(); + }); + + it('edit the description input', ()=> { + flexTab.editDescriptionTextInput.waitForVisible(); + flexTab.editDescriptionTextInput.setValue('DESCRIPTION EDITED'); + }); + + it('save the description', ()=> { + flexTab.editNameSave.click(); + }); + + it('should show the new description', ()=> { + flexTab.thirdSetting.getText().should.equal('DESCRIPTION EDITED'); + }); + + it('open the users tab', ()=> { + browser.pause(7000); + flexTab.membersTab.waitForVisible(); + flexTab.membersTab.click(); + + }); + + it('sets rocket cat as owner', ()=> { + browser.pause(1000); + flexTab.viewAllBtn.click(); + browser.pause(1000); + flexTab.setUserOwner(targetUser); + }); + + it('should show the owner add message', ()=> { + mainContent.lastMessage.getText().should.equal(targetUser+' was set owner by '+username); + }); + + it('sets rocket cat as moderator', ()=> { + browser.pause(1000); + flexTab.setUserModerator(targetUser); + }); + + it('should show the moderator add message', ()=> { + mainContent.lastMessage.getText().should.equal(targetUser+' was set moderator by '+username); + }); + + it('mute rocket cat', ()=> { + browser.pause(6000); + flexTab.muteUser(targetUser); + }); + + it('confirms the popup', ()=> { + flexTab.confirmPopup(); + }); + + it('close the user screen', ()=> { + browser.pause(6000); + flexTab.viewAllBtn.click(); + }); + }); +}); \ No newline at end of file