///
///
import { generateNewOrg, generateNewUser, generateNewDevice } from '../../utils/generateMockData';
describe('Check newly registered device status', () => {
const testUser = generateNewUser();
const testOrg = generateNewOrg(testUser);
const testDevice = generateNewDevice(testUser);
const openRequestCertificatesModal = () => {
cy.dataCy('speed-dial-icon').trigger('mouseover');
cy.contains('Request certificates');
cy.dataCy('Request certificates').click();
};
before(() => {
cy.apiRegisterAndApproveUser(testUser);
cy.apiRegisterAndApproveOrg(testUser, testOrg);
cy.apiRegisterAndApproveDevice(testUser, testDevice);
cy.apiLoginUser(testUser);
cy.visit('/');
cy.dataCy('settings-menu').click();
cy.dataCy('user-profile').click();
cy.dataCy('exchange-address-create-button').click();
});
beforeEach(() => {
cy.apiLoginUser(testUser);
cy.visit('/');
});
it('should display approved device in All Devices', () => {
cy.dataCy('production').click();
cy.wait(300);
cy.contains(`${testUser.firstName}-facility`).should('exist');
});
it('should go to Detailed View of newly created device', () => {
cy.dataCy('owned').click();
cy.contains('Active');
cy.dataCy('speed-dial-icon').trigger('mouseover');
cy.contains('View details').should('exist');
cy.contains('Request certificates').should('exist');
});
it('should check Request certificates modal behaviour', () => {
cy.dataCy('owned').click();
cy.dataCy('speed-dial-icon').trigger('mouseover');
cy.contains('Request certificates');
cy.dataCy('Request certificates').click();
cy.contains(`${testUser.firstName}-facility`).should('exist');
cy.dataCy('request-certificates-submit').should('be.disabled');
cy.dataCy('request-certificates-capacity').find('input').should('have.value', '');
cy.dataCy('request-certificates-date-from').find('input').should('be.ok');
cy.dataCy('request-certificates-date-to').find('input').should('be.ok');
cy.attachDocument('request-certificates-upload');
cy.contains('testDocument.json').should('exist');
});
it('should Request certificates for current date', () => {
cy.dataCy('owned').click();
openRequestCertificatesModal();
cy.attachDocument('request-certificates-upload');
cy.dataCy('request-certificates-capacity').find('input').type('100');
cy.dataCy('request-certificates-submit').click();
cy.notification('Certificates requested.').should('exist');
openRequestCertificatesModal();
cy.dataCy('request-certificates-capacity').find('input').should('have.value', '');
cy.contains('testDocument.json').should('not.exist');
});
it('should show error if request certificates for the same period has already been requested', () => {
cy.dataCy('owned').click();
openRequestCertificatesModal();
cy.dataCy('request-certificates-capacity').find('input').type('100');
cy.dataCy('request-certificates-date-from').find('input').click();
cy.get('[class*="MuiPickersDay-daySelected"]').click().type('{enter}');
cy.dataCy('request-certificates-date-to').find('input').click();
cy.get('[class*="MuiPickersDay-daySelected"]').click().type('{enter}');
cy.dataCy('request-certificates-submit').click();
cy.notification('There is already a certificate requested for that time period.').should(
'exist'
);
});
it('should request certificates with monthly-weekly difference', () => {
cy.dataCy('owned').click();
openRequestCertificatesModal();
cy.dataCy('request-certificates-capacity').find('input').type('100');
cy.dataCy('request-certificates-date-from').find('input').click();
cy.get('[class*="MuiPickersCalendarHeader-iconButton"]').eq(1).click();
cy.get('[class*="MuiPickersCalendar-week"]').contains('15').click().type('{enter}');
cy.dataCy('request-certificates-date-to').find('input').click();
cy.get('[class*="MuiPickersCalendarHeader-iconButton"]').eq(1).click().click();
cy.get('[class*="MuiPickersCalendar-week"]').contains('15').click().type('{enter}');
cy.dataCy('request-certificates-submit').click();
cy.notification('Certificates requested.').should('exist');
});
});