From 9c75f3fa59bd0865643679d383377f3529069316 Mon Sep 17 00:00:00 2001 From: okbel Date: Wed, 10 Jan 2018 11:03:33 -0300 Subject: [PATCH 1/7] Adding missing proptypes --- .prettierrc.json | 7 +++++++ client/coral-embed-stream/src/components/Embed.js | 12 +++++++++++- .../src/tabs/stream/components/Stream.js | 1 + 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 .prettierrc.json diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 000000000..9f6b37499 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,7 @@ +{ + "tabWidth": 2, + "trailingComma": "es5", + "bracketSpacing": false, + "singleQuote": true, + "arrowParens": "allow" +} \ No newline at end of file diff --git a/client/coral-embed-stream/src/components/Embed.js b/client/coral-embed-stream/src/components/Embed.js index 7445bf300..4d95c6697 100644 --- a/client/coral-embed-stream/src/components/Embed.js +++ b/client/coral-embed-stream/src/components/Embed.js @@ -101,8 +101,18 @@ export default class Embed extends React.Component { } Embed.propTypes = { + setActiveTab: PropTypes.func, + auth: PropTypes.object, + blurSignInDialog: PropTypes.func, + focusSignInDialog: PropTypes.func, + hideSignInDialog: PropTypes.func, + router: PropTypes.object, + commentId: PropTypes.string, + root: PropTypes.object, + activeTab: PropTypes.string, data: PropTypes.shape({ loading: PropTypes.bool, - error: PropTypes.object + error: PropTypes.object, + refetch: PropTypes.func, }).isRequired }; diff --git a/client/coral-embed-stream/src/tabs/stream/components/Stream.js b/client/coral-embed-stream/src/tabs/stream/components/Stream.js index e37b91ba6..9bc2ca38a 100644 --- a/client/coral-embed-stream/src/tabs/stream/components/Stream.js +++ b/client/coral-embed-stream/src/tabs/stream/components/Stream.js @@ -316,6 +316,7 @@ class Stream extends React.Component { } Stream.propTypes = { + asset: PropTypes.object, activeStreamTab: PropTypes.string, data: PropTypes.object, root: PropTypes.object, From 5db82091822bb3b910e2165a5fbfcdcf15776108 Mon Sep 17 00:00:00 2001 From: okbel Date: Wed, 10 Jan 2018 11:21:24 -0300 Subject: [PATCH 2/7] Removing replyButton in Stream is closed --- .../coral-embed-stream/src/tabs/stream/components/Comment.js | 1 + .../coral-embed-stream/src/tabs/stream/components/Stream.js | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/client/coral-embed-stream/src/tabs/stream/components/Comment.js b/client/coral-embed-stream/src/tabs/stream/components/Comment.js index ba14e3c7f..9748747f0 100644 --- a/client/coral-embed-stream/src/tabs/stream/components/Comment.js +++ b/client/coral-embed-stream/src/tabs/stream/components/Comment.js @@ -547,6 +547,7 @@ export default class Comment extends React.Component { queryData={queryData} inline /> + {!disableReply && + + Date: Wed, 10 Jan 2018 11:43:34 -0300 Subject: [PATCH 3/7] Adding e2e for the stream - open and closed asset features --- .../src/components/Embed.js | 4 +-- .../configure/components/AssetStatusInfo.js | 8 +++-- test/e2e/page_objects/embedStream.js | 29 +++++++++++++++++++ test/e2e/specs/03_embedStream.js | 14 +++++++++ 4 files changed, 50 insertions(+), 5 deletions(-) diff --git a/client/coral-embed-stream/src/components/Embed.js b/client/coral-embed-stream/src/components/Embed.js index 4d95c6697..22c6146bd 100644 --- a/client/coral-embed-stream/src/components/Embed.js +++ b/client/coral-embed-stream/src/components/Embed.js @@ -38,7 +38,7 @@ export default class Embed extends React.Component { ]; if (can(user, 'UPDATE_CONFIG')) { tabs.push( - + {t('framework.configure_stream')} ); @@ -90,7 +90,7 @@ export default class Embed extends React.Component { , - + , ]} diff --git a/client/coral-embed-stream/src/tabs/configure/components/AssetStatusInfo.js b/client/coral-embed-stream/src/tabs/configure/components/AssetStatusInfo.js index d3c2f14d7..81221dfe3 100644 --- a/client/coral-embed-stream/src/tabs/configure/components/AssetStatusInfo.js +++ b/client/coral-embed-stream/src/tabs/configure/components/AssetStatusInfo.js @@ -46,14 +46,16 @@ class AssetStatusInfo extends React.Component { render() { const {isClosed, closedAt, onClose, onOpen} = this.props; return ( -
+

{!isClosed ? t('configure.close') : t('configure.open')} {t('configure.comment_stream')}

{(!isClosed && closedAt) ?

{t('configure.comment_stream_will_close')} {timeago(new Date(closedAt))}.

: ''} -
+

{!isClosed ? t('configure.open_stream_configuration') : t('configure.close_stream_configuration')}

-
diff --git a/test/e2e/page_objects/embedStream.js b/test/e2e/page_objects/embedStream.js index 0a31745e4..4b1519740 100644 --- a/test/e2e/page_objects/embedStream.js +++ b/test/e2e/page_objects/embedStream.js @@ -8,6 +8,12 @@ module.exports = { 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'); @@ -42,6 +48,7 @@ module.exports = { iframe: `#${iframeId}`, commentsTabButton: '.talk-embed-stream-comments-tab > button', profileTabButton: '.talk-embed-stream-profile-tab > button', + configTabButton: '.talk-embed-stream-profile-tab > button', banDialog: '.talk-ban-user-dialog', banDialogConfirmButton: '.talk-ban-user-dialog-button-confirm', }, @@ -95,6 +102,7 @@ module.exports = { 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', suspendedAccountInput: '.talk-suspended-account-username-input', @@ -132,5 +140,26 @@ module.exports = { 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; + }, + }] + }, }, }; diff --git a/test/e2e/specs/03_embedStream.js b/test/e2e/specs/03_embedStream.js index 56f267375..db3b8bcef 100644 --- a/test/e2e/specs/03_embedStream.js +++ b/test/e2e/specs/03_embedStream.js @@ -96,6 +96,20 @@ module.exports = { profile.assert.equal(result.value, '1'); }); }, + 'stream is closed, user won\'t be able to perform some actions: reply ': (client) => { + + const embedStream = client.page.embedStream(); + + embedStream + .waitForElementVisible('@firstComment') + .waitForElementVisible('@replyButton') + .goToProfileSection() + .closeStream() + .goToCommentsSection() + .waitForElementVisible('@firstComment') + .waitForElementNotVisible('@replyButton') + .openStream(); + }, 'user logs out': (client) => { const embedStream = client.page.embedStream(); const comments = embedStream.goToCommentsSection(); From 24f7405065114fb5d03a7870f96434259b293b9e Mon Sep 17 00:00:00 2001 From: okbel Date: Wed, 10 Jan 2018 12:29:47 -0300 Subject: [PATCH 4/7] remove uncommitted --- .prettierrc.json | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 .prettierrc.json diff --git a/.prettierrc.json b/.prettierrc.json deleted file mode 100644 index 9f6b37499..000000000 --- a/.prettierrc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "tabWidth": 2, - "trailingComma": "es5", - "bracketSpacing": false, - "singleQuote": true, - "arrowParens": "allow" -} \ No newline at end of file From 4c3d3fb4b0a2325e481c5b28ffe084cc2e5fb4f1 Mon Sep 17 00:00:00 2001 From: okbel Date: Wed, 10 Jan 2018 13:54:43 -0300 Subject: [PATCH 5/7] Updated tests --- test/e2e/page_objects/embedStream.js | 2 +- test/e2e/specs/03_embedStream.js | 52 ++++++++++++++++++++-------- 2 files changed, 39 insertions(+), 15 deletions(-) diff --git a/test/e2e/page_objects/embedStream.js b/test/e2e/page_objects/embedStream.js index 4b1519740..410748970 100644 --- a/test/e2e/page_objects/embedStream.js +++ b/test/e2e/page_objects/embedStream.js @@ -48,7 +48,7 @@ module.exports = { iframe: `#${iframeId}`, commentsTabButton: '.talk-embed-stream-comments-tab > button', profileTabButton: '.talk-embed-stream-profile-tab > button', - configTabButton: '.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', }, diff --git a/test/e2e/specs/03_embedStream.js b/test/e2e/specs/03_embedStream.js index db3b8bcef..2e1f442df 100644 --- a/test/e2e/specs/03_embedStream.js +++ b/test/e2e/specs/03_embedStream.js @@ -96,20 +96,6 @@ module.exports = { profile.assert.equal(result.value, '1'); }); }, - 'stream is closed, user won\'t be able to perform some actions: reply ': (client) => { - - const embedStream = client.page.embedStream(); - - embedStream - .waitForElementVisible('@firstComment') - .waitForElementVisible('@replyButton') - .goToProfileSection() - .closeStream() - .goToCommentsSection() - .waitForElementVisible('@firstComment') - .waitForElementNotVisible('@replyButton') - .openStream(); - }, 'user logs out': (client) => { const embedStream = client.page.embedStream(); const comments = embedStream.goToCommentsSection(); @@ -124,4 +110,42 @@ module.exports = { profile .assert.visible('@notLoggedIn'); }, + 'admin logs in': (client) => { + const {testData: {admin}} = client.globals; + const embedStream = client.page.embedStream(); + + embedStream + .navigate() + .ready() + .openLoginPopup((popup) => popup.login(admin)); + }, + 'admin closes stream, users won\'t be able to perform some actions: reply ': (client) => { + + const embedStream = client.page.embedStream(); + + embedStream + .goToCommentsSection() + .waitForElementVisible('@firstComment') + .waitForElementVisible('@replyButton'); + + embedStream + .goToConfigSection() + .closeStream(); + + embedStream + .goToCommentsSection() + .waitForElementVisible('@firstComment') + .waitForElementNotVisible('@replyButton'); + + embedStream + .goToConfigSection() + .openStream(); + }, + 'adming logs out': (client) => { + const embedStream = client.page.embedStream(); + const comments = embedStream.goToCommentsSection(); + + comments + .logout(); + }, }; From 845c99de1039507b65be19b8e86b5d47eb017c3a Mon Sep 17 00:00:00 2001 From: okbel Date: Wed, 10 Jan 2018 13:57:16 -0300 Subject: [PATCH 6/7] Updated tests --- test/e2e/specs/03_embedStream.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/specs/03_embedStream.js b/test/e2e/specs/03_embedStream.js index 2e1f442df..b852de222 100644 --- a/test/e2e/specs/03_embedStream.js +++ b/test/e2e/specs/03_embedStream.js @@ -135,7 +135,7 @@ module.exports = { embedStream .goToCommentsSection() .waitForElementVisible('@firstComment') - .waitForElementNotVisible('@replyButton'); + .waitForElementNotPresent('@replyButton'); embedStream .goToConfigSection() From caf2b88ee8066ab0bbe8fa16d43156859ba4c2c5 Mon Sep 17 00:00:00 2001 From: Chi Vinh Le Date: Wed, 10 Jan 2018 18:29:03 +0100 Subject: [PATCH 7/7] Fix typo --- test/e2e/specs/03_embedStream.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/e2e/specs/03_embedStream.js b/test/e2e/specs/03_embedStream.js index 838fcf5a4..ee870033a 100644 --- a/test/e2e/specs/03_embedStream.js +++ b/test/e2e/specs/03_embedStream.js @@ -128,7 +128,7 @@ module.exports = { .goToCommentsSection() .waitForElementVisible('@firstComment') .waitForElementVisible('@replyButton'); - + embedStream .goToConfigSection() .closeStream(); @@ -142,7 +142,7 @@ module.exports = { .goToConfigSection() .openStream(); }, - 'adming logs out': (client) => { + 'admin logs out': (client) => { const embedStream = client.page.embedStream(); const comments = embedStream.goToCommentsSection();