mirror of
https://github.com/wassname/talk.git
synced 2026-06-28 21:47:49 +08:00
2ef3e29e7d
* 'reply' of github.com:coralproject/talk: (193 commits) Add some margin to loadmore typo updated tests updated tests Fully implement SetUsername removed snakecase fix to optional required param Use correct mutation and show errors refactored mailer service with lodash! Fix live status updates Move ChangeUsername to the appropiate tab Fix change username not displaying errors Remove defunct refetch detection workaround Rename UnBan and UnSuspend hardened configuration user cli patches don't apply configuration from dotfiles during testing applied rename to graph mutation edges reintroduced the errors.ErrSameUsernameProvided fixed wrong query logic ...
166 lines
6.4 KiB
JavaScript
166 lines
6.4 KiB
JavaScript
const iframeId = 'coralStreamEmbed_iframe';
|
|
const SortedWindowHandler = require('../utils/SortedWindowHandler');
|
|
|
|
module.exports = {
|
|
commands: [{
|
|
ready: function() {
|
|
this.switchToIframe();
|
|
this.expect.section('@comments').to.be.visible;
|
|
return this.section.comments;
|
|
},
|
|
goToConfigSection: function() {
|
|
this.waitForElementVisible('@configTabButton');
|
|
this.click('@configTabButton');
|
|
this.expect.section('@config').to.be.visible;
|
|
return this.section.config;
|
|
},
|
|
goToProfileSection: function() {
|
|
this.waitForElementVisible('@profileTabButton');
|
|
this.click('@profileTabButton');
|
|
this.expect.section('@profile').to.be.visible;
|
|
return this.section.profile;
|
|
},
|
|
goToCommentsSection: function() {
|
|
this.waitForElementVisible('@commentsTabButton');
|
|
this.click('@commentsTabButton');
|
|
this.expect.section('@comments').to.be.visible;
|
|
return this.section.comments;
|
|
},
|
|
navigateToAsset: function(asset) {
|
|
this.api.url(`${this.api.launchUrl}/assets/title/${asset}`);
|
|
return this;
|
|
},
|
|
switchToIframe: function() {
|
|
this.waitForElementVisible('@iframe');
|
|
|
|
// Pause a bit to let iframe initialize in the hope that it'll
|
|
// fix https://www.browserstack.com/automate/builds/96419cf46e3d6376a36ae6d3f90934112df1ed91/sessions/224f1a1566c1c8c7859e2e76ece51862200f0173#automate_button
|
|
this.api.pause(1000);
|
|
|
|
this.api.frame(iframeId);
|
|
return this;
|
|
},
|
|
}],
|
|
url: function() {
|
|
return this.api.launchUrl;
|
|
},
|
|
elements: {
|
|
iframe: `#${iframeId}`,
|
|
commentsTabButton: '.talk-embed-stream-comments-tab > button',
|
|
profileTabButton: '.talk-embed-stream-profile-tab > button',
|
|
configTabButton: '.talk-embed-stream-config-tab > button',
|
|
banDialog: '.talk-ban-user-dialog',
|
|
banDialogConfirmButton: '.talk-ban-user-dialog-button-confirm',
|
|
},
|
|
sections: {
|
|
comments: {
|
|
commands: [{
|
|
openLoginPopup(callback) {
|
|
const windowHandler = new SortedWindowHandler(this.api);
|
|
|
|
this
|
|
.waitForElementVisible('@signInButton')
|
|
.click('@signInButton');
|
|
|
|
// Wait for window to be created
|
|
// https://www.browserstack.com/automate/builds/1ceccf4efb4683b7feb890f45a32b5922b40ed3f/sessions/17b1a79682bef2498cb0be86eac317a08c976b0a#automate_button
|
|
this.api.pause(200);
|
|
|
|
// Focusing on the Login PopUp
|
|
windowHandler.windowHandles((handles) => {
|
|
this.api.switchWindow(handles[1]);
|
|
|
|
const popup = this.api.page.popup().ready();
|
|
callback(popup);
|
|
|
|
// Focus on the Embed Window.
|
|
windowHandler.pop();
|
|
|
|
// For some reasons firefox does not automatically load auth after login.
|
|
// https://www.browserstack.com/automate/builds/37650cb4e66c6edce0ba0800a1c1b7e7f74bf991/sessions/7a4e9da69b0f9ecdf8b7fa9150639e47b1532cb0#automate_button
|
|
if (this.api.capabilities.browserName === 'firefox') {
|
|
this.parent.navigate().ready();
|
|
} else {
|
|
this.parent.switchToIframe();
|
|
}
|
|
});
|
|
|
|
return this;
|
|
},
|
|
logout() {
|
|
this
|
|
.waitForElementVisible('@logoutButton')
|
|
.click('@logoutButton');
|
|
},
|
|
}],
|
|
selector: '.talk-embed-stream-comments-tab-pane',
|
|
elements: {
|
|
logoutButton: '.talk-stream-userbox-logout',
|
|
signInButton: '#coralSignInButton',
|
|
commentBoxTextarea: '#commentText',
|
|
commentBoxPostButton: '.talk-plugin-commentbox-button',
|
|
firstComment: '.talk-stream-comment.talk-stream-comment-level-0',
|
|
firstCommentContent: '.talk-stream-comment.talk-stream-comment-level-0 .talk-stream-comment-content',
|
|
flagButton: '.talk-stream-comment.talk-stream-comment-level-0 .talk-plugin-flags-button',
|
|
replyButton: '.talk-stream-comment.talk-stream-comment-level-0 .talk-plugin-replies-reply-button',
|
|
respectButton: '.talk-stream-comment.talk-stream-comment-level-0 .talk-stream-comment-footer .talk-plugin-respect-button',
|
|
restrictedMessageBox: '.talk-restricted-message-box',
|
|
changeUsernameInput: '.talk-change-username-username-input',
|
|
changeUsernameSubmitButton: '.talk-change-username-submit-button',
|
|
},
|
|
sections: {
|
|
flag: {
|
|
selector: '.talk-plugin-flags-popup',
|
|
elements: {
|
|
offensiveUsernameRadio: '.talk-plugin-flags-popup-radio#USERNAME_OFFENSIVE',
|
|
flagUsernameRadio: '.talk-plugin-flags-popup-radio#USERS',
|
|
flagCommentRadio: '.talk-plugin-flags-popup-radio#COMMENTS',
|
|
continueButton: '.talk-plugin-flags-popup-button',
|
|
popUpText: '.talk-plugin-flags-popup-text',
|
|
spamCommentRadio: '.talk-plugin-flags-popup-radio#COMMENT_SPAM',
|
|
}
|
|
},
|
|
mod: {
|
|
selector: '.talk-plugin-moderation-actions',
|
|
elements: {
|
|
arrow: '.talk-plugin-moderation-actions-arrow',
|
|
menu: '.talk-plugin-modetarion-actions-menu',
|
|
banButton: '.talk-plugin-moderation-actions-ban',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
profile: {
|
|
selector: '.talk-embed-stream-profile-tab-pane',
|
|
elements: {
|
|
notLoggedIn: '.talk-embed-stream-not-logged-in',
|
|
myCommentHistory: '.talk-my-profile-comment-history',
|
|
myCommentHistoryReactions: '.talk-my-profile-comment-history .comment-summary .comment-summary-reactions',
|
|
myCommentHistoryReactionCount: '.talk-my-profile-comment-history .comment-summary .comment-summary-reactions .comment-summary-reaction-count',
|
|
myCommentHistoryComment: '.talk-my-profile-comment-history .my-comment-body',
|
|
},
|
|
},
|
|
config: {
|
|
selector: '.talk-embed-stream-config-tab-pane',
|
|
elements: {
|
|
openStream: '.talk-config-close-comments-open-button',
|
|
closeStream: '.talk-config-close-comments-close-button',
|
|
},
|
|
commands: [{
|
|
openStream: function() {
|
|
this.waitForElementVisible('@openStream');
|
|
this.click('@openStream');
|
|
this.waitForElementVisible('@closeStream');
|
|
return this.section.config;
|
|
},
|
|
closeStream: function() {
|
|
this.waitForElementVisible('@closeStream');
|
|
this.click('@closeStream');
|
|
this.waitForElementVisible('@openStream');
|
|
return this.section.config;
|
|
},
|
|
}]
|
|
},
|
|
},
|
|
};
|