[CompontentTests] Replace few more e2e tests with component tests

This commit is contained in:
Aaro Koivukangas
2026-06-25 15:13:16 +03:00
parent 11819d223a
commit b6e5b92bdc
3 changed files with 96 additions and 11 deletions
+1 -10
View File
@@ -32,23 +32,14 @@ const deleteTag = tagName => {
describe('Degree programme overview', () => {
describe('Degree programme selector', () => {
beforeEach(() => {
cy.init('/study-programme', 'admin')
})
it('Degree programme search filter', () => {
cy.init('/study-programme', 'admin')
cy.contains('Tietojenkäsittelytieteen kandiohjelma').should('exist')
cy.contains('Matemaattisten tieteiden kandiohjelma').should('exist')
cy.cs('study-programme-filter').type('Tietojenkäsittelytieteen')
cy.contains('Tietojenkäsittelytieteen kandiohjelma').should('exist')
cy.contains('Matemaattisten tieteiden kandiohjelma').should('not.exist')
})
it('Old and specialized programmes filter', () => {
cy.contains('Biotekniikka (ylempi)').should('not.exist')
cy.cs('filter-old-programmes-toggle').click()
cy.contains('Biotekniikka (ylempi)').should('exist')
})
})
describe('Basic information tab works for basic user', () => {
+1 -1
View File
@@ -20,7 +20,7 @@ export default defineConfig({
/* Opt out of parallel tests on CI. */
workers: process.env.CI ? 1 : undefined,
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: 'html',
reporter: process.env.CI ? 'dot' : [['list', { printSteps: true }]],
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
@@ -60,6 +60,64 @@ const testProgrammes = {
},
progId: 'DOMAST',
},
KH50_005: {
code: 'KH50_005',
curriculumPeriodIds: ['hy-lv-76'],
degreeProgrammeType: 'urn:code:degree-program-type:bachelors-degree',
name: {
en: "Bachelor's Programme in Computer Science",
fi: 'Tietojenkäsittelytieteen kandiohjelma',
sv: 'Kandidatprogrammet i datavetenskap',
},
progId: 'TKT',
},
1: {
code: '1',
curriculumPeriodIds: ['hy-lv-76'],
degreeProgrammeType: 'urn:code:degree-program-type:bachelor',
name: {
fi: 'Test1',
},
progId: 'TKT1',
},
2: {
code: '2',
curriculumPeriodIds: ['hy-lv-76'],
degreeProgrammeType: 'urn:code:degree-program-type:bachelor',
name: {
fi: 'Test2',
},
progId: 'TKT2',
},
3: {
code: '3',
curriculumPeriodIds: ['hy-lv-76'],
degreeProgrammeType: 'urn:code:degree-program-type:bachelor',
name: {
fi: 'Test3',
},
progId: 'TKT3',
},
4: {
code: '4',
curriculumPeriodIds: ['hy-lv-76'],
degreeProgrammeType: 'urn:code:degree-program-type:bachelor',
name: {
fi: 'Test4',
},
progId: 'TKT4',
},
'820050-ma': {
code: '820050-ma',
curriculumPeriodIds: ['hy-lv-76'],
degreeProgrammeType: 'urn:code:degree-program-type:masters-degree',
name: {
en: 'Biotechnology (higher)',
fi: 'Biotekniikka (ylempi)',
sv: 'Bioteknik (högre)',
},
progId: '820050-ma',
},
},
allProgrammes: {},
}
@@ -116,4 +174,40 @@ test.describe('StudyProgrammeSelector', () => {
await expect(component).toContainText('Combined programmes')
await expect(component).toContainText('Doctoral programmes')
})
test('should filter out programmes correctly', async ({ mount, router }) => {
void (await router.route('**/populationstatistics/studyprogrammes', async route => {
const json = testProgrammes
await route.fulfill({ json })
}))
const component = await mount(<ReduxWrapper component={<StudyProgrammeSelector />} />)
await component.getByLabel('Filter degree programmes').fill('Tietojenkäsittelytieteen')
await expect(component).toContainText('Bachelor programmes')
await expect(component).toContainText('Tietojenkäsittelytieteen kandiohjelma')
await expect(component).not.toContainText('Matemaattisten tieteiden kandiohjelma')
await expect(component).not.toContainText('Eläinlääketieteen kandiohjelma')
await expect(component).not.toContainText('Master programmes')
await expect(component).not.toContainText('Matematiikan ja tilastotieteen maisteriohjelma')
await expect(component).not.toContainText('Eläinlääketieteen lisensiaatin koulutusohjelma')
await expect(component).not.toContainText('Combined programmes programmes')
await expect(component).not.toContainText('Doctoral programmes')
})
test('should display old programmes only when toggled', async ({ mount, router }) => {
void (await router.route('**/populationstatistics/studyprogrammes', async route => {
const json = testProgrammes
await route.fulfill({ json })
}))
const component = await mount(<ReduxWrapper component={<StudyProgrammeSelector />} />)
await expect(component).not.toContainText('Biotekniikka (ylempi)')
await component.getByLabel('Filter out old and specialized programmes').click()
await expect(component).toContainText('Biotekniikka (ylempi)')
})
})