2024-01-08 15:23:39 +05:30
|
|
|
/*
|
|
|
|
* Copyright 2023 Collate.
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
|
|
|
*/
|
|
|
|
import {
|
|
|
|
customFormatDateTime,
|
|
|
|
getCurrentMillis,
|
|
|
|
getEpochMillisForFutureDays,
|
|
|
|
} from '../../../src/utils/date-time/DateTimeUtils';
|
|
|
|
import {
|
|
|
|
interceptURL,
|
|
|
|
toastNotification,
|
|
|
|
verifyResponseStatusCode,
|
|
|
|
} from '../common';
|
|
|
|
|
2024-04-30 15:19:57 +05:30
|
|
|
const announcementForm = ({ title, description, startDate, endDate }) => {
|
2024-01-08 15:23:39 +05:30
|
|
|
cy.get('#title').type(title);
|
|
|
|
|
|
|
|
cy.get('#startTime').click().type(`${startDate}{enter}`);
|
|
|
|
cy.clickOutside();
|
|
|
|
|
|
|
|
cy.get('#endTime').click().type(`${endDate}{enter}`);
|
|
|
|
cy.clickOutside();
|
|
|
|
cy.get('.toastui-editor-md-container > .toastui-editor > .ProseMirror').type(
|
|
|
|
description
|
|
|
|
);
|
|
|
|
|
|
|
|
cy.get('[id="announcement-submit"]').scrollIntoView().click();
|
|
|
|
};
|
|
|
|
|
2024-06-06 00:05:10 +05:30
|
|
|
export const createAnnouncement = (announcement, entityName, updatedName) => {
|
2024-01-08 15:23:39 +05:30
|
|
|
interceptURL(
|
|
|
|
'GET',
|
|
|
|
'/api/v1/feed?entityLink=*type=Announcement',
|
|
|
|
'announcementFeed'
|
|
|
|
);
|
|
|
|
cy.get('[data-testid="manage-button"]').click();
|
|
|
|
cy.get('[data-testid="announcement-button"]').click();
|
|
|
|
|
|
|
|
const startDate = customFormatDateTime(getCurrentMillis(), 'yyyy-MM-dd');
|
|
|
|
const endDate = customFormatDateTime(
|
|
|
|
getEpochMillisForFutureDays(5),
|
|
|
|
'yyyy-MM-dd'
|
|
|
|
);
|
|
|
|
|
|
|
|
cy.get('[data-testid="announcement-error"]').should(
|
|
|
|
'contain',
|
|
|
|
'No Announcements, Click on add announcement to add one.'
|
|
|
|
);
|
|
|
|
|
|
|
|
// Create Active Announcement
|
|
|
|
cy.get('[data-testid="add-announcement"]').click();
|
|
|
|
cy.get('.ant-modal-header').should('contain', 'Make an announcement');
|
|
|
|
|
2024-04-30 15:19:57 +05:30
|
|
|
announcementForm({ ...announcement, startDate, endDate });
|
2024-01-08 15:23:39 +05:30
|
|
|
|
|
|
|
// wait time for success toast message
|
|
|
|
verifyResponseStatusCode('@announcementFeed', 200);
|
|
|
|
cy.get('.Toastify__close-button >').click();
|
|
|
|
|
|
|
|
// reload page to get the active announcement card
|
|
|
|
cy.reload();
|
|
|
|
|
|
|
|
// check for announcement card on entity page
|
|
|
|
cy.get('[data-testid="announcement-card"]').should(
|
|
|
|
'contain',
|
|
|
|
announcement.title
|
|
|
|
);
|
2024-06-11 16:00:51 +05:30
|
|
|
// Todo: Need to check announcement flow on home page @Ashish8689
|
|
|
|
// cy.goToHomePage();
|
|
|
|
|
|
|
|
// cy.get('[data-testid="announcement-container"]')
|
|
|
|
// .find(`a[href*="${encodeURIComponent(entityName)}"]`)
|
|
|
|
// .filter(':visible')
|
|
|
|
// .first()
|
|
|
|
// .click();
|
|
|
|
|
|
|
|
// cy.get('[data-testid="entity-header-display-name"]').should(
|
|
|
|
// 'contain',
|
|
|
|
// `Cypress ${updatedName} updated`
|
|
|
|
// );
|
2024-01-08 15:23:39 +05:30
|
|
|
};
|
|
|
|
|
2024-04-30 15:19:57 +05:30
|
|
|
export const deleteAnnouncement = () => {
|
2024-01-08 15:23:39 +05:30
|
|
|
interceptURL(
|
|
|
|
'GET',
|
|
|
|
'/api/v1/feed?entityLink=*type=Announcement',
|
|
|
|
'announcementFeed'
|
|
|
|
);
|
|
|
|
interceptURL('DELETE', '/api/v1/feed/*', 'deleteFeed');
|
|
|
|
|
|
|
|
cy.get('[data-testid="manage-button"]').click();
|
|
|
|
cy.get('[data-testid="announcement-button"]').click();
|
|
|
|
|
|
|
|
verifyResponseStatusCode('@announcementFeed', 200);
|
|
|
|
|
|
|
|
cy.get('[data-testid="announcement-card"] [data-testid="main-message"]')
|
|
|
|
.first()
|
|
|
|
.trigger('mouseover')
|
|
|
|
.then(() => {
|
|
|
|
cy.get('[data-testid="delete-message"]').click({ force: true });
|
|
|
|
cy.get('.ant-modal-body').should(
|
|
|
|
'contain',
|
|
|
|
'Are you sure you want to permanently delete this message?'
|
|
|
|
);
|
|
|
|
cy.get('[data-testid="save-button"]').click();
|
|
|
|
verifyResponseStatusCode('@deleteFeed', 200);
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
2024-04-30 15:19:57 +05:30
|
|
|
export const replyAnnouncementUtil = () => {
|
|
|
|
interceptURL(
|
|
|
|
'GET',
|
|
|
|
'/api/v1/feed?entityLink=*type=Announcement',
|
|
|
|
'announcementFeed'
|
|
|
|
);
|
|
|
|
interceptURL('GET', '/api/v1/feed/*', 'allAnnouncementFeed');
|
|
|
|
interceptURL('POST', '/api/v1/feed/*/posts', 'addAnnouncementReply');
|
|
|
|
|
|
|
|
cy.get('[data-testid="announcement-card"]').click();
|
|
|
|
|
|
|
|
cy.get(
|
|
|
|
'[data-testid="announcement-card"] [data-testid="main-message"]'
|
|
|
|
).trigger('mouseover');
|
|
|
|
|
|
|
|
cy.get('[data-testid="add-reply"]').should('be.visible').click();
|
|
|
|
|
|
|
|
cy.get('[data-testid="send-button"]').should('be.disabled');
|
|
|
|
|
|
|
|
verifyResponseStatusCode('@allAnnouncementFeed', 200);
|
|
|
|
|
|
|
|
cy.get('[data-testid="editor-wrapper"] .ql-editor').type('Reply message');
|
|
|
|
|
|
|
|
cy.get('[data-testid="send-button"]').should('not.disabled').click();
|
|
|
|
|
|
|
|
verifyResponseStatusCode('@addAnnouncementReply', 201);
|
|
|
|
verifyResponseStatusCode('@announcementFeed', 200);
|
|
|
|
verifyResponseStatusCode('@allAnnouncementFeed', 200);
|
|
|
|
|
|
|
|
cy.get('[data-testid="replies"] [data-testid="viewer-container"]').should(
|
|
|
|
'contain',
|
|
|
|
'Reply message'
|
|
|
|
);
|
|
|
|
cy.get('[data-testid="show-reply-thread"]').should('contain', '1 replies');
|
|
|
|
|
|
|
|
// Edit the reply message
|
|
|
|
cy.get('[data-testid="replies"] > [data-testid="main-message"]').trigger(
|
|
|
|
'mouseover'
|
|
|
|
);
|
|
|
|
|
|
|
|
cy.get('[data-testid="edit-message"]').should('be.visible').click();
|
|
|
|
|
|
|
|
cy.get('.feed-message [data-testid="editor-wrapper"] .ql-editor')
|
|
|
|
.clear()
|
|
|
|
.type('Reply message edited');
|
|
|
|
|
|
|
|
cy.get('[data-testid="save-button"]').click();
|
|
|
|
|
|
|
|
cy.get('[data-testid="replies"] [data-testid="viewer-container"]').should(
|
|
|
|
'contain',
|
|
|
|
'Reply message edited'
|
|
|
|
);
|
|
|
|
|
|
|
|
cy.reload();
|
|
|
|
};
|
|
|
|
|
2024-01-08 15:23:39 +05:30
|
|
|
export const createInactiveAnnouncement = (announcement) => {
|
|
|
|
// Create InActive Announcement
|
|
|
|
interceptURL(
|
|
|
|
'GET',
|
|
|
|
'/api/v1/feed?entityLink=*type=Announcement',
|
|
|
|
'announcementFeed'
|
|
|
|
);
|
|
|
|
|
|
|
|
cy.get('[data-testid="manage-button"]').click();
|
|
|
|
cy.get('[data-testid="announcement-button"]').click();
|
|
|
|
|
|
|
|
cy.get('[data-testid="add-announcement"]').click();
|
|
|
|
cy.get('.ant-modal-header').should('contain', 'Make an announcement');
|
|
|
|
|
|
|
|
const InActiveStartDate = customFormatDateTime(
|
|
|
|
getEpochMillisForFutureDays(6),
|
|
|
|
'yyyy-MM-dd'
|
|
|
|
);
|
|
|
|
const InActiveEndDate = customFormatDateTime(
|
|
|
|
getEpochMillisForFutureDays(11),
|
|
|
|
'yyyy-MM-dd'
|
|
|
|
);
|
|
|
|
|
2024-04-30 15:19:57 +05:30
|
|
|
announcementForm({
|
2024-01-08 15:23:39 +05:30
|
|
|
...announcement,
|
|
|
|
startDate: InActiveStartDate,
|
|
|
|
endDate: InActiveEndDate,
|
|
|
|
});
|
|
|
|
|
|
|
|
// wait time for success toast message
|
|
|
|
verifyResponseStatusCode('@announcementFeed', 200);
|
|
|
|
toastNotification('Announcement created successfully!');
|
|
|
|
|
|
|
|
cy.get('[data-testid="inActive-announcements"]').should('be.visible');
|
|
|
|
cy.clickOutside();
|
|
|
|
};
|