From 511c9aa824b77e74b923aa3fe4283963d1e18cb3 Mon Sep 17 00:00:00 2001 From: kolaente Date: Tue, 19 Mar 2024 00:47:25 +0100 Subject: [PATCH] fix(views): make tests for project history kind of work again --- .../e2e/project/project-history.spec.ts | 18 ++++++++++++------ frontend/cypress/factories/project_view.ts | 19 +++++++++++++++++++ frontend/src/views/project/ProjectView.vue | 1 - 3 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 frontend/cypress/factories/project_view.ts diff --git a/frontend/cypress/e2e/project/project-history.spec.ts b/frontend/cypress/e2e/project/project-history.spec.ts index 0dadca8c7..b7caad07e 100644 --- a/frontend/cypress/e2e/project/project-history.spec.ts +++ b/frontend/cypress/e2e/project/project-history.spec.ts @@ -2,6 +2,7 @@ import {createFakeUserAndLogin} from '../../support/authenticateUser' import {ProjectFactory} from '../../factories/project' import {prepareProjects} from './prepareProjects' +import {ProjectViewFactory} from '../../factories/project_view' describe('Project History', () => { createFakeUserAndLogin() @@ -12,23 +13,28 @@ describe('Project History', () => { cy.intercept(Cypress.env('API_URL') + '/projects/*').as('loadProject') const projects = ProjectFactory.create(6) + ProjectViewFactory.truncate() + projects.forEach(p => ProjectViewFactory.create(1, { + id: p.id, + project_id: p.id, + }, false)) cy.visit('/') cy.wait('@loadProjectArray') cy.get('body') .should('not.contain', 'Last viewed') - cy.visit(`/projects/${projects[0].id}`) + cy.visit(`/projects/${projects[0].id}/${projects[0].id}`) cy.wait('@loadProject') - cy.visit(`/projects/${projects[1].id}`) + cy.visit(`/projects/${projects[1].id}/${projects[1].id}`) cy.wait('@loadProject') - cy.visit(`/projects/${projects[2].id}`) + cy.visit(`/projects/${projects[2].id}/${projects[2].id}`) cy.wait('@loadProject') - cy.visit(`/projects/${projects[3].id}`) + cy.visit(`/projects/${projects[3].id}/${projects[3].id}`) cy.wait('@loadProject') - cy.visit(`/projects/${projects[4].id}`) + cy.visit(`/projects/${projects[4].id}/${projects[4].id}`) cy.wait('@loadProject') - cy.visit(`/projects/${projects[5].id}`) + cy.visit(`/projects/${projects[5].id}/${projects[5].id}`) cy.wait('@loadProject') // cy.visit('/') diff --git a/frontend/cypress/factories/project_view.ts b/frontend/cypress/factories/project_view.ts new file mode 100644 index 000000000..710afff9c --- /dev/null +++ b/frontend/cypress/factories/project_view.ts @@ -0,0 +1,19 @@ +import {Factory} from '../support/factory' +import {faker} from '@faker-js/faker' + +export class ProjectViewFactory extends Factory { + static table = 'project_views' + + static factory() { + const now = new Date() + + return { + id: '{increment}', + title: faker.lorem.words(3), + project_id: '{increment}', + view_kind: 0, + created: now.toISOString(), + updated: now.toISOString(), + } + } +} \ No newline at end of file diff --git a/frontend/src/views/project/ProjectView.vue b/frontend/src/views/project/ProjectView.vue index e7d5371d3..7d8162382 100644 --- a/frontend/src/views/project/ProjectView.vue +++ b/frontend/src/views/project/ProjectView.vue @@ -31,7 +31,6 @@ watch( if (viewId === 0) { // Ideally, we would do that in the router redirect, but we the projects (and therefore, the views) // are not always loaded then. - console.log('views', projectId, projectStore.projects) const viewId = projectStore.projects[projectId].views[0].id router.replace({ name: 'project.view',