mirror of
https://gitlab.com/openstapps/openstapps.git
synced 2026-01-04 20:42:52 +00:00
fix: opening hours not updating feat: lazy-load opening hours module feat: add e2e tests for opening hours refactor: migrate opening hours to on-push change detection feat: show exact minutes in opening hours starting one hour before next change
142 lines
3.7 KiB
TypeScript
142 lines
3.7 KiB
TypeScript
describe('opening hours', () => {
|
|
beforeEach(function () {
|
|
cy.intercept('POST', 'https://mobile.server.uni-frankfurt.de/search', {
|
|
fixture: 'search/types/canteen/canteen-search-result.json',
|
|
}).as('search');
|
|
});
|
|
|
|
it('should specify relative closing time', () => {
|
|
cy.clock(new Date(2023, 9, 16, 15, 29), ['Date']);
|
|
cy.visit('/canteen');
|
|
|
|
cy.get('stapps-opening-hours')
|
|
.first()
|
|
.should('contain', 'Geöffnet')
|
|
.should('contain', 'Schließt heute um 22:00');
|
|
});
|
|
|
|
it('should specify relative opening time', () => {
|
|
cy.clock(new Date(2023, 9, 16, 6, 29), ['Date']);
|
|
cy.visit('/canteen');
|
|
|
|
cy.get('stapps-opening-hours')
|
|
.first()
|
|
.should('contain', 'Geschlossen')
|
|
.should('contain', 'Öffnet heute um 08:30');
|
|
});
|
|
|
|
it('should specify soon opening time', () => {
|
|
cy.clock(new Date(2023, 9, 16, 8, 0), ['Date']);
|
|
cy.visit('/canteen');
|
|
|
|
cy.get('stapps-opening-hours')
|
|
.first()
|
|
.should('contain', 'Geschlossen')
|
|
.should('contain', 'Öffnet in 30 Minuten');
|
|
});
|
|
|
|
it('should specify soon closing time', () => {
|
|
cy.clock(new Date(2023, 9, 16, 21, 30), ['Date']);
|
|
cy.visit('/canteen');
|
|
|
|
cy.get('stapps-opening-hours')
|
|
.first()
|
|
.should('contain', 'Geöffnet')
|
|
.should('contain', 'Schließt in 30 Minuten');
|
|
});
|
|
|
|
it('should update the soon closing time every minute', () => {
|
|
cy.clock(new Date(2023, 9, 16, 21, 30));
|
|
cy.visit('/canteen');
|
|
cy.tick(500);
|
|
|
|
cy.get('stapps-opening-hours')
|
|
.first()
|
|
.should('contain', 'Geöffnet')
|
|
.should('contain', 'Schließt in 30 Minuten');
|
|
|
|
cy.tick(60_000);
|
|
cy.tick(50);
|
|
|
|
cy.get('stapps-opening-hours')
|
|
.first()
|
|
.should('contain', 'Geöffnet')
|
|
.should('contain', 'Schließt in 29 Minuten');
|
|
});
|
|
|
|
it('should update the status when it changes', () => {
|
|
cy.clock(new Date(2023, 9, 16, 21, 59));
|
|
cy.visit('/canteen');
|
|
cy.tick(500);
|
|
|
|
cy.get('stapps-opening-hours')
|
|
.first()
|
|
.should('contain', 'Geöffnet')
|
|
.should('contain', 'Schließt in 1 Minute');
|
|
|
|
cy.tick(60_000);
|
|
|
|
cy.get('stapps-opening-hours')
|
|
.first()
|
|
.should('contain', 'Geschlossen')
|
|
.should('contain', 'Öffnet morgen um 08:30');
|
|
});
|
|
|
|
// This one takes long to execute!
|
|
it('should update as expected', () => {
|
|
cy.clock(new Date(2023, 9, 16, 20, 59));
|
|
cy.visit('/canteen');
|
|
cy.tick(500);
|
|
|
|
cy.get('stapps-opening-hours')
|
|
.first()
|
|
.should('contain', 'Geöffnet')
|
|
.should('contain', 'Schließt heute um 22:00');
|
|
|
|
cy.tick(60_000);
|
|
|
|
cy.get('stapps-opening-hours')
|
|
.first()
|
|
.should('contain', 'Geöffnet')
|
|
.should('contain', 'Schließt in 60 Minuten');
|
|
|
|
cy.tick(30 * 60_000);
|
|
|
|
cy.get('stapps-opening-hours')
|
|
.first()
|
|
.should('contain', 'Geöffnet')
|
|
.should('contain', 'Schließt in 30 Minuten');
|
|
|
|
cy.tick(30 * 60_000);
|
|
|
|
cy.get('stapps-opening-hours')
|
|
.first()
|
|
.should('contain', 'Geschlossen')
|
|
.should('contain', 'Öffnet morgen um 08:30');
|
|
|
|
cy.tick(9.5 * 60 * 60_000);
|
|
|
|
cy.get('stapps-opening-hours')
|
|
.first()
|
|
.should('contain', 'Geschlossen')
|
|
.should('contain', 'Öffnet in 60 Minuten');
|
|
|
|
cy.tick(30 * 60_000);
|
|
|
|
cy.get('stapps-opening-hours')
|
|
.first()
|
|
.should('contain', 'Geschlossen')
|
|
.should('contain', 'Öffnet in 30 Minuten');
|
|
|
|
cy.tick(30 * 60_000);
|
|
|
|
cy.get('stapps-opening-hours')
|
|
.first()
|
|
.should('contain', 'Geöffnet')
|
|
.should('contain', 'Schließt heute um 22:00');
|
|
|
|
// Long tick warps will cause network requests to time out
|
|
cy.get('@consoleError').invoke('resetHistory');
|
|
});
|
|
});
|