|
|
@@ -0,0 +1,145 @@
|
|
|
+context('Comment', () => {
|
|
|
+ const ssPrefix = 'comments-';
|
|
|
+ let commentCount = 0;
|
|
|
+
|
|
|
+ beforeEach(() => {
|
|
|
+ // login
|
|
|
+ cy.fixture("user-admin.json").then(user => {
|
|
|
+ cy.login(user.username, user.password);
|
|
|
+ });
|
|
|
+
|
|
|
+ // visit page
|
|
|
+ cy.visit('/comment');
|
|
|
+ cy.collapseSidebar(true, true);
|
|
|
+ })
|
|
|
+
|
|
|
+ it('Create comment page', () => {
|
|
|
+ // save page
|
|
|
+ cy.get('#grw-page-editor-mode-manager').as('pageEditorModeManager').should('be.visible');
|
|
|
+ cy.waitUntil(() => {
|
|
|
+ // do
|
|
|
+ cy.get('@pageEditorModeManager').within(() => {
|
|
|
+ cy.get('button:nth-child(2)').click();
|
|
|
+ });
|
|
|
+ // until
|
|
|
+ return cy.get('.layout-root').then($elem => $elem.hasClass('editing'));
|
|
|
+ });
|
|
|
+ cy.get('.CodeMirror').should('be.visible');
|
|
|
+
|
|
|
+ cy.getByTestid('page-editor').should('be.visible');
|
|
|
+ cy.getByTestid('save-page-btn').click();
|
|
|
+ })
|
|
|
+
|
|
|
+ it('Successfully add comments', () => {
|
|
|
+ const commetText = 'add comment';
|
|
|
+
|
|
|
+ cy.getByTestid('page-comment-button').click();
|
|
|
+
|
|
|
+ // Open comment editor
|
|
|
+ cy.waitUntil(() => {
|
|
|
+ // do
|
|
|
+ cy.getByTestid('open-comment-editor-button').click();
|
|
|
+ // wait until
|
|
|
+ return cy.get('.comment-write').then($elem => $elem.is(':visible'));
|
|
|
+ });
|
|
|
+
|
|
|
+ cy.get('.CodeMirror').type(commetText);
|
|
|
+ cy.getByTestid("comment-submit-button").eq(0).click();
|
|
|
+
|
|
|
+ // Check update comment count
|
|
|
+ commentCount += 1
|
|
|
+ cy.getByTestid('page-comment-button').contains(commentCount);
|
|
|
+ cy.screenshot(`${ssPrefix}1-add-comments`);
|
|
|
+ });
|
|
|
+
|
|
|
+ it('Successfully reply comments', () => {
|
|
|
+ const commetText = 'reply comment';
|
|
|
+
|
|
|
+ cy.getByTestid('page-comment-button').click();
|
|
|
+
|
|
|
+ // Open reply comment editor
|
|
|
+ cy.waitUntil(() => {
|
|
|
+ // do
|
|
|
+ cy.getByTestid('comment-reply-button').eq(0).click();
|
|
|
+ // wait until
|
|
|
+ return cy.get('.comment-write').then($elem => $elem.is(':visible'));
|
|
|
+ });
|
|
|
+
|
|
|
+ cy.get('.CodeMirror').type(commetText);
|
|
|
+ cy.getByTestid("comment-submit-button").eq(0).click();
|
|
|
+
|
|
|
+ // Check update comment count
|
|
|
+ commentCount += 1
|
|
|
+ cy.getByTestid('page-comment-button').contains(commentCount);
|
|
|
+ cy.screenshot(`${ssPrefix}2-reply-comments`);
|
|
|
+ });
|
|
|
+
|
|
|
+ it('Successfully delete comments', () => {
|
|
|
+
|
|
|
+ cy.getByTestid('page-comment-button').click();
|
|
|
+
|
|
|
+ cy.get('.page-comments').should('be.visible');
|
|
|
+ cy.getByTestid('comment-delete-button').eq(0).click({force: true});
|
|
|
+ cy.get('.modal-content').then($elem => $elem.is(':visible'));
|
|
|
+ cy.get('.modal-footer > button:nth-child(3)').click();
|
|
|
+
|
|
|
+ // Check update comment count
|
|
|
+ commentCount -= 2
|
|
|
+ cy.getByTestid('page-comment-button').contains(commentCount);
|
|
|
+ cy.screenshot(`${ssPrefix}3-delete-comments`);
|
|
|
+ });
|
|
|
+
|
|
|
+ // Mention username in comment
|
|
|
+ it('Successfully mention username in comment', () => {
|
|
|
+ const username = '@adm';
|
|
|
+
|
|
|
+ cy.getByTestid('page-comment-button').click();
|
|
|
+
|
|
|
+ // Open comment editor
|
|
|
+ cy.waitUntil(() => {
|
|
|
+ // do
|
|
|
+ cy.getByTestid('open-comment-editor-button').click();
|
|
|
+ // wait until
|
|
|
+ return cy.get('.comment-write').then($elem => $elem.is(':visible'));
|
|
|
+ });
|
|
|
+
|
|
|
+ cy.waitUntil(() => {
|
|
|
+ // do
|
|
|
+ cy.get('.CodeMirror').type(username);
|
|
|
+ // wait until
|
|
|
+ return cy.get('.CodeMirror-hints').then($elem => $elem.is(':visible'));
|
|
|
+ });
|
|
|
+
|
|
|
+ cy.get('#comments-container').within(() => { cy.screenshot(`${ssPrefix}4-mention-username-found`) });
|
|
|
+ // Click on mentioned username
|
|
|
+ cy.get('.CodeMirror-hints > li').first().click();
|
|
|
+ cy.get('#comments-container').within(() => { cy.screenshot(`${ssPrefix}5-mention-username-mentioned`) });
|
|
|
+ });
|
|
|
+
|
|
|
+ it('Username not found when mention username in comment', () => {
|
|
|
+ const username = '@user';
|
|
|
+
|
|
|
+ cy.getByTestid('page-comment-button').click();
|
|
|
+
|
|
|
+ // Open comment editor
|
|
|
+ cy.waitUntil(() => {
|
|
|
+ // do
|
|
|
+ cy.getByTestid('open-comment-editor-button').click();
|
|
|
+ // wait until
|
|
|
+ return cy.get('.comment-write').then($elem => $elem.is(':visible'));
|
|
|
+ });
|
|
|
+
|
|
|
+ cy.waitUntil(() => {
|
|
|
+ // do
|
|
|
+ cy.get('.CodeMirror').type(username);
|
|
|
+ // wait until
|
|
|
+ return cy.get('.CodeMirror-hints').then($elem => $elem.is(':visible'));
|
|
|
+ });
|
|
|
+
|
|
|
+ cy.get('#comments-container').within(() => { cy.screenshot(`${ssPrefix}6-mention-username-not-found`) });
|
|
|
+ // Click on username not found hint
|
|
|
+ cy.get('.CodeMirror-hints > li').first().click();
|
|
|
+ cy.get('#comments-container').within(() => { cy.screenshot(`${ssPrefix}7-mention-no-username-mentioned`) });
|
|
|
+ });
|
|
|
+
|
|
|
+})
|