diff --git a/cypress/datasets/stopRegistry.ts b/cypress/datasets/stopRegistry.ts index 04c8ae9bba..043a932fbb 100644 --- a/cypress/datasets/stopRegistry.ts +++ b/cypress/datasets/stopRegistry.ts @@ -13,9 +13,11 @@ import { StopRegistryShelterType, StopRegistryTransportModeType, TerminalInput, + minimalQuayKeyValues, seedOrganisations, } from '@hsl/jore4-test-db-manager/dist/CypressSpecExports'; import cloneDeep from 'lodash/cloneDeep'; +import { StopPlaceState } from '../enums'; import { stopCoordinatesByLabel } from './base'; const coordinatesToStopRegistryGeoJSON = ( @@ -67,6 +69,7 @@ const stopPlaceData: Array = [ privateCode: { type: 'HSL/TEST', value: 'X0003' }, name: { lang: 'fin', value: 'Annankatu 15' }, alternativeNames: Annankatu15AltNames, + transportMode: StopRegistryTransportModeType.Bus, keyValues: [ { key: KnownValueKey.ValidityStart, values: ['2020-01-01'] }, { key: KnownValueKey.ValidityEnd, values: ['2050-01-01'] }, @@ -80,6 +83,7 @@ const stopPlaceData: Array = [ publicCode: 'E2E001', description: { lang: 'fin', value: 'Annankatu 15' }, keyValues: [ + ...minimalQuayKeyValues, { key: KnownValueKey.StreetAddress, values: ['Annankatu 15'] }, { key: KnownValueKey.ElyNumber, values: ['E2E001'] }, ], @@ -91,6 +95,7 @@ const stopPlaceData: Array = [ publicCode: 'E2E009', description: { lang: 'fin', value: 'Annankatu 15' }, keyValues: [ + ...minimalQuayKeyValues, { key: KnownValueKey.StreetAddress, values: ['Annankatu 15'] }, { key: KnownValueKey.ElyNumber, values: ['E2E009'] }, ], @@ -106,6 +111,7 @@ const stopPlaceData: Array = [ StopArea: { privateCode: { type: 'HSL/TEST', value: 'X0004' }, name: { lang: 'fin', value: 'Kalevankatu 32' }, + transportMode: StopRegistryTransportModeType.Bus, keyValues: [ { key: KnownValueKey.ValidityStart, values: ['2020-01-01'] }, { key: KnownValueKey.ValidityEnd, values: ['2050-01-01'] }, @@ -118,6 +124,7 @@ const stopPlaceData: Array = [ { publicCode: 'E2E003', keyValues: [ + ...minimalQuayKeyValues, { key: KnownValueKey.StreetAddress, values: ['Kalevankatu 32'] }, { key: KnownValueKey.ElyNumber, values: ['E2E003'] }, ], @@ -128,6 +135,7 @@ const stopPlaceData: Array = [ { publicCode: 'E2E006', keyValues: [ + ...minimalQuayKeyValues, { key: KnownValueKey.StreetAddress, values: ['Kalevankatu 32'] }, { key: KnownValueKey.ElyNumber, values: ['E2E006'] }, ], @@ -144,6 +152,7 @@ const stopPlaceData: Array = [ privateCode: { type: 'HSL/TEST', value: 'E2E002' }, name: Annankatu20Name, alternativeNames: Annankatu20AltNames, + transportMode: StopRegistryTransportModeType.Bus, quays: [ { publicCode: 'E2E002', @@ -152,6 +161,7 @@ const stopPlaceData: Array = [ stopCoordinatesByLabel.E2E002, ), keyValues: [ + ...minimalQuayKeyValues, { key: KnownValueKey.StreetAddress, values: ['Annankatu 20'] }, { key: KnownValueKey.ElyNumber, values: ['E2E002'] }, ], @@ -165,6 +175,7 @@ const stopPlaceData: Array = [ StopArea: { privateCode: { type: 'HSL/TEST', value: 'E2E004' }, name: { lang: 'fin', value: 'Albertinkatu 38' }, + transportMode: StopRegistryTransportModeType.Bus, alternativeNames: [ { nameType: StopRegistryNameType.Translation, @@ -186,6 +197,7 @@ const stopPlaceData: Array = [ stopCoordinatesByLabel.E2E004, ), keyValues: [ + ...minimalQuayKeyValues, { key: KnownValueKey.StreetAddress, values: ['Albertinkatu 38'], @@ -202,6 +214,7 @@ const stopPlaceData: Array = [ StopArea: { privateCode: { type: 'HSL/TEST', value: 'E2E005' }, name: { lang: 'fin', value: 'Lönnrotinkatu 32' }, + transportMode: StopRegistryTransportModeType.Bus, quays: [ { publicCode: 'E2E005', @@ -209,6 +222,7 @@ const stopPlaceData: Array = [ stopCoordinatesByLabel.E2E005, ), keyValues: [ + ...minimalQuayKeyValues, { key: KnownValueKey.StreetAddress, values: ['Lönnrotinkatu 32'], @@ -225,6 +239,7 @@ const stopPlaceData: Array = [ StopArea: { privateCode: { type: 'HSL/TEST', value: 'E2E007' }, name: { lang: 'fin', value: 'Kalevankatu 18' }, + transportMode: StopRegistryTransportModeType.Bus, quays: [ { publicCode: 'E2E007', @@ -232,6 +247,11 @@ const stopPlaceData: Array = [ stopCoordinatesByLabel.E2E005, ), keyValues: [ + { key: KnownValueKey.Priority, values: ['10'] }, + { + key: KnownValueKey.StopState, + values: [StopPlaceState.InOperation], + }, { key: KnownValueKey.StreetAddress, values: ['Kalevankatu 18'] }, { key: KnownValueKey.ElyNumber, values: ['E2E007'] }, { key: KnownValueKey.ValidityStart, values: ['2020-03-20'] }, @@ -246,6 +266,7 @@ const stopPlaceData: Array = [ StopArea: { privateCode: { type: 'HSL/TEST', value: 'E2E008' }, name: { lang: 'fin', value: 'Kuttulammentie' }, + transportMode: StopRegistryTransportModeType.Bus, quays: [ { publicCode: 'E2E008', @@ -253,6 +274,11 @@ const stopPlaceData: Array = [ stopCoordinatesByLabel.E2E005, ), keyValues: [ + { key: KnownValueKey.Priority, values: ['10'] }, + { + key: KnownValueKey.StopState, + values: [StopPlaceState.InOperation], + }, { key: KnownValueKey.StreetAddress, values: ['Kuttulammentie 15'], @@ -299,6 +325,7 @@ const stopPlaceData: Array = [ StopArea: { privateCode: { type: 'HSL/TEST', value: 'E2E010' }, name: { lang: 'fin', value: 'Finnoonkartano' }, + transportMode: StopRegistryTransportModeType.Bus, quays: [ { publicCode: 'E2E010', @@ -306,6 +333,11 @@ const stopPlaceData: Array = [ stopCoordinatesByLabel.E2E005, ), keyValues: [ + { key: KnownValueKey.Priority, values: ['10'] }, + { + key: KnownValueKey.StopState, + values: [StopPlaceState.InOperation], + }, { key: KnownValueKey.StreetAddress, values: ['Finnoonkartano'] }, { key: KnownValueKey.ElyNumber, values: ['E2E010'] }, { key: KnownValueKey.ValidityStart, values: ['2020-03-20'] }, @@ -320,6 +352,7 @@ const stopPlaceData: Array = [ StopArea: { privateCode: { type: 'HSL/TEST', value: 'E2E011' }, name: { lang: 'fin', value: 'Eteläinen Hesperiankatu' }, + transportMode: StopRegistryTransportModeType.Bus, keyValues: [ { key: KnownValueKey.ValidityStart, values: ['2020-01-01'] }, { key: KnownValueKey.ValidityEnd, values: ['2052-01-01'] }, @@ -339,6 +372,11 @@ const stopPlaceData: Array = [ { key: KnownValueKey.ElyNumber, values: ['E2E011'] }, { key: KnownValueKey.ValidityStart, values: ['2020-01-01'] }, { key: KnownValueKey.ValidityEnd, values: ['2052-01-01'] }, + { key: KnownValueKey.Priority, values: ['10'] }, + { + key: KnownValueKey.StopState, + values: [StopPlaceState.InOperation], + }, ], geometry: coordinatesToStopRegistryGeoJSON( stopCoordinatesByLabel.E2E011, @@ -352,6 +390,7 @@ const stopPlaceData: Array = [ StopArea: { privateCode: { type: 'HSL/TEST', value: 'E2ENQ' }, name: { lang: 'fin', value: 'No quays' }, + transportMode: StopRegistryTransportModeType.Bus, quays: [], geometry: { coordinates: [60.16993495, 24.92596546], @@ -362,9 +401,9 @@ const stopPlaceData: Array = [ }, { StopArea: { - transportMode: StopRegistryTransportModeType.Tram, privateCode: { type: 'HSL/TEST', value: 'E2ER001' }, name: { lang: 'fin', value: 'Tram stop area' }, + transportMode: StopRegistryTransportModeType.Tram, quays: [ { publicCode: 'E2ER001', @@ -375,6 +414,11 @@ const stopPlaceData: Array = [ { key: KnownValueKey.StreetAddress, values: ['Tram stop area'] }, { key: KnownValueKey.ElyNumber, values: ['E2ER001'] }, { key: KnownValueKey.ValidityStart, values: ['2020-03-20'] }, + { key: KnownValueKey.Priority, values: ['10'] }, + { + key: KnownValueKey.StopState, + values: [StopPlaceState.InOperation], + }, ], }, ], @@ -386,9 +430,9 @@ const stopPlaceData: Array = [ }, { StopArea: { - transportMode: StopRegistryTransportModeType.Tram, privateCode: { type: 'HSL/TEST', value: 'E2ER002' }, name: { lang: 'fin', value: 'Tram stop area 2' }, + transportMode: StopRegistryTransportModeType.Tram, quays: [ { publicCode: 'E2ER002', @@ -399,6 +443,11 @@ const stopPlaceData: Array = [ { key: KnownValueKey.StreetAddress, values: ['Tram stop area 2'] }, { key: KnownValueKey.ElyNumber, values: ['E2ER002'] }, { key: KnownValueKey.ValidityStart, values: ['2020-03-20'] }, + { key: KnownValueKey.Priority, values: ['10'] }, + { + key: KnownValueKey.StopState, + values: [StopPlaceState.InOperation], + }, ], }, ], @@ -410,9 +459,9 @@ const stopPlaceData: Array = [ }, { StopArea: { - transportMode: StopRegistryTransportModeType.Tram, privateCode: { type: 'HSL/TEST', value: 'E2ER003' }, name: { lang: 'fin', value: 'Tram stop area 3' }, + transportMode: StopRegistryTransportModeType.Tram, quays: [ { publicCode: 'E2ER003', @@ -423,6 +472,11 @@ const stopPlaceData: Array = [ { key: KnownValueKey.StreetAddress, values: ['Tram stop area 3'] }, { key: KnownValueKey.ElyNumber, values: ['E2ER003'] }, { key: KnownValueKey.ValidityStart, values: ['2020-03-20'] }, + { key: KnownValueKey.Priority, values: ['10'] }, + { + key: KnownValueKey.StopState, + values: [StopPlaceState.InOperation], + }, ], }, ], diff --git a/cypress/e2e/map/createRoute.cy.ts b/cypress/e2e/map/createRoute.cy.ts index 71f8b5f892..2a27817c74 100644 --- a/cypress/e2e/map/createRoute.cy.ts +++ b/cypress/e2e/map/createRoute.cy.ts @@ -7,6 +7,7 @@ import { StopRegistryGeoJsonInput, StopRegistryGeoJsonType, StopRegistryTransportModeType, + minimalQuayKeyValues, } from '@hsl/jore4-test-db-manager/dist/CypressSpecExports'; import { buildInfraLinksAlongRoute, @@ -54,6 +55,7 @@ function constructStopRegistryEntriesForBaseDbResourceStopPoints( privateCode: { value: label, type: 'HSL/TEST' }, publicCode: label, geometry, + keyValues: minimalQuayKeyValues.slice(), }, ], }, diff --git a/cypress/e2e/map/createTerminal.cy.ts b/cypress/e2e/map/createTerminal.cy.ts index a7f7edbdd0..45481c03ba 100644 --- a/cypress/e2e/map/createTerminal.cy.ts +++ b/cypress/e2e/map/createTerminal.cy.ts @@ -11,7 +11,7 @@ import { testInfraLinkExternalIds, } from '../../datasets/base'; import { getClonedBaseStopRegistryData } from '../../datasets/stopRegistry'; -import { Tag } from '../../enums'; +import { StopPlaceState, Tag } from '../../enums'; import { FilterPanel, KnownMapItemTypeFilters, @@ -279,6 +279,11 @@ describe('Terminal creation tests', rootOpts, () => { key: KnownValueKey.ValidityStart, values: ['2020-03-20'], }, + { key: KnownValueKey.Priority, values: ['10'] }, + { + key: KnownValueKey.StopState, + values: [StopPlaceState.InOperation], + }, ], }, ], diff --git a/cypress/e2e/map/editStopAreas.cy.ts b/cypress/e2e/map/editStopAreas.cy.ts index f0a3138690..cd09f884d5 100644 --- a/cypress/e2e/map/editStopAreas.cy.ts +++ b/cypress/e2e/map/editStopAreas.cy.ts @@ -1,4 +1,5 @@ import { + ReusableComponentsVehicleModeEnum, StopAreaInput, StopRegistryGeoJsonType, } from '@hsl/jore4-test-db-manager/dist/CypressSpecExports'; @@ -13,6 +14,7 @@ import { getClonedBaseStopRegistryData } from '../../datasets/stopRegistry'; import { Tag } from '../../enums'; import { ConfirmationDialog, + FilterPanel, KnownMapItemTypeFilters, MapFooter, MapItemTypeFiltersOverlay, @@ -92,6 +94,7 @@ describe('Stop areas on map', { tags: [Tag.StopAreas, Tag.Map] }, () => { lng: 24.93858, }); + FilterPanel.toggleShowStops(ReusableComponentsVehicleModeEnum.Bus); expectGraphQLCallToSucceed('@gqlGetStopAreasByLocation'); MapPage.map.waitForLoadToComplete(); }); diff --git a/cypress/e2e/map/mapFiltering.cy.ts b/cypress/e2e/map/mapFiltering.cy.ts index b58c4a2e12..78de30a4e9 100644 --- a/cypress/e2e/map/mapFiltering.cy.ts +++ b/cypress/e2e/map/mapFiltering.cy.ts @@ -23,7 +23,7 @@ import { UUID } from '../../types'; import { SupportedResources, insertToDbHelper } from '../../utils'; import { InsertedStopRegistryIds } from '../utils'; -describe('Stop area details', { tags: [Tag.StopAreas, Tag.Map] }, () => { +describe('Filter map entities', { tags: [Tag.Map] }, () => { let dbResources: SupportedResources; const baseDbResources = getClonedBaseDbResources(); @@ -77,171 +77,168 @@ describe('Stop area details', { tags: [Tag.StopAreas, Tag.Map] }, () => { }); }); - describe('Filter map entities', { tags: [Tag.Map] }, () => { - function assertStopsAreVisible() { - Map.getStopByStopLabelAndPriority( - 'E2E001', - Priority.Standard, - ).shouldBeVisible(); - Map.getStopByStopLabelAndPriority( - 'E2E009', - Priority.Standard, - ).shouldBeVisible(); - } - - function assertStopsAreNotOnMap() { - Map.getStopByStopLabelAndPriority('E2E001', Priority.Standard).should( - 'not.exist', + function assertStopsAreVisible() { + Map.getStopByStopLabelAndPriority( + 'E2E001', + Priority.Standard, + ).shouldBeVisible(); + Map.getStopByStopLabelAndPriority( + 'E2E009', + Priority.Standard, + ).shouldBeVisible(); + } + + function assertStopsAreNotOnMap() { + Map.getStopByStopLabelAndPriority('E2E001', Priority.Standard).should( + 'not.exist', + ); + Map.getStopByStopLabelAndPriority('E2E009', Priority.Standard).should( + 'not.exist', + ); + } + + function assertStopLabelsAre(visible: 'visible' | 'hidden') { + if (visible === 'visible') { + Map.getStopByStopLabelAndPriority('E2E001', Priority.Standard).within( + () => + Map.getStopMarkerLabel().shouldBeVisible().and('have.text', 'E2E001'), ); - Map.getStopByStopLabelAndPriority('E2E009', Priority.Standard).should( - 'not.exist', + Map.getStopByStopLabelAndPriority('E2E009', Priority.Standard).within( + () => + Map.getStopMarkerLabel().shouldBeVisible().and('have.text', 'E2E009'), + ); + } else { + Map.getStopByStopLabelAndPriority('E2E001', Priority.Standard).within( + () => Map.getStopMarkerLabel().should('not.exist'), + ); + Map.getStopByStopLabelAndPriority('E2E009', Priority.Standard).within( + () => Map.getStopMarkerLabel().should('not.exist'), ); } + } - function assertStopLabelsAre(visible: 'visible' | 'hidden') { - if (visible === 'visible') { - Map.getStopByStopLabelAndPriority('E2E001', Priority.Standard).within( - () => - Map.getStopMarkerLabel() - .shouldBeVisible() - .and('have.text', 'E2E001'), - ); - Map.getStopByStopLabelAndPriority('E2E009', Priority.Standard).within( - () => - Map.getStopMarkerLabel() - .shouldBeVisible() - .and('have.text', 'E2E009'), - ); - } else { - Map.getStopByStopLabelAndPriority('E2E001', Priority.Standard).within( - () => Map.getStopMarkerLabel().should('not.exist'), - ); - Map.getStopByStopLabelAndPriority('E2E009', Priority.Standard).within( - () => Map.getStopMarkerLabel().should('not.exist'), - ); - } - } - - it('should filter stops', { tags: [Tag.Smoke] }, () => { - // Wait for map to load - Map.waitForLoadToComplete(); + it('should filter stops', { tags: [Tag.Smoke] }, () => { + // Wait for map to load + Map.waitForLoadToComplete(); - // Make sure stops are visible - FilterPanel.toggleShowStops(ReusableComponentsVehicleModeEnum.Bus); - assertStopsAreVisible(); + // Make sure stops are visible + FilterPanel.toggleShowStops(ReusableComponentsVehicleModeEnum.Bus); + assertStopsAreVisible(); - // Set stops to be hidden - MapObservationDateFiltersOverlay.getToggleShowFiltersButton().click(); - MapItemTypeFiltersOverlay.setFilters({ - [KnownMapItemTypeFilters.Stop]: false, - }); - assertStopsAreNotOnMap(); + // Set stops to be hidden + MapObservationDateFiltersOverlay.getToggleShowFiltersButton().click(); + MapItemTypeFiltersOverlay.setFilters({ + [KnownMapItemTypeFilters.Stop]: false, + }); + assertStopsAreNotOnMap(); - // Set stops to be shown again - MapItemTypeFiltersOverlay.setFilters({ - [KnownMapItemTypeFilters.Stop]: true, - }); - assertStopsAreVisible(); + // Set stops to be shown again + MapItemTypeFiltersOverlay.setFilters({ + [KnownMapItemTypeFilters.Stop]: true, + }); + assertStopsAreVisible(); - // Stops should be hidden if observation date does not match - MapObservationDateControl.setObservationDate('2000-01-01'); - assertStopsAreNotOnMap(); + // Stops should be hidden if observation date does not match + MapObservationDateControl.setObservationDate('2000-01-01'); + assertStopsAreNotOnMap(); - // But should come back if we disable observation date filtering - // and enable future items. - MapItemTypeFiltersOverlay.setFilters({ - [KnownMapItemTypeFilters.ShowHighestPriorityCurrentStops]: false, - [KnownMapItemTypeFilters.ShowFutureStops]: true, - }); - assertStopsAreVisible(); + // But should come back if we disable observation date filtering + // and enable future items. + MapItemTypeFiltersOverlay.setFilters({ + [KnownMapItemTypeFilters.ShowHighestPriorityCurrentStops]: false, + [KnownMapItemTypeFilters.ShowFutureStops]: true, + }); + assertStopsAreVisible(); - // Should hide if future stops are not shown - MapItemTypeFiltersOverlay.setFilters({ - [KnownMapItemTypeFilters.ShowFutureStops]: false, - }); - assertStopsAreNotOnMap(); + // Should hide if future stops are not shown + MapItemTypeFiltersOverlay.setFilters({ + [KnownMapItemTypeFilters.ShowFutureStops]: false, + }); + assertStopsAreNotOnMap(); - // Should hide if future stops are show but standard versions are disabled - MapItemTypeFiltersOverlay.setFilters({ - [KnownMapItemTypeFilters.ShowFutureStops]: true, - [KnownMapItemTypeFilters.ShowStandardStops]: false, - }); - assertStopsAreNotOnMap(); + // Should hide if future stops are show but standard versions are disabled + MapItemTypeFiltersOverlay.setFilters({ + [KnownMapItemTypeFilters.ShowFutureStops]: true, + [KnownMapItemTypeFilters.ShowStandardStops]: false, }); + assertStopsAreNotOnMap(); + }); - it('should filter stop areas', () => { - // Wait for map to load - Map.waitForLoadToComplete(); + it('should filter stop areas', () => { + // Wait for map to load + Map.waitForLoadToComplete(); - // Make sure stop area is visible - Map.getStopAreaById('X0003').shouldBeVisible(); + // Make sure bus things are visible + FilterPanel.toggleShowStops(ReusableComponentsVehicleModeEnum.Bus); - // Set stop areas to be hidden - MapObservationDateFiltersOverlay.getToggleShowFiltersButton().click(); - MapItemTypeFiltersOverlay.setFilters({ - [KnownMapItemTypeFilters.StopArea]: false, - }); - Map.getStopAreaById('X0003').should('not.exist'); + // Make sure stop area is visible + Map.getStopAreaById('X0003').shouldBeVisible(); + + // Set stop areas to be hidden + MapObservationDateFiltersOverlay.getToggleShowFiltersButton().click(); + MapItemTypeFiltersOverlay.setFilters({ + [KnownMapItemTypeFilters.StopArea]: false, }); + Map.getStopAreaById('X0003').should('not.exist'); + }); - it('should filter terminals', () => { - // Wait for map to load - Map.waitForLoadToComplete(); + it('should filter terminals', () => { + // Wait for map to load + Map.waitForLoadToComplete(); - // Hide stop areas, no effect on the tests, but they do cover up the - // member stops. Also stops should be visible - MapObservationDateFiltersOverlay.getToggleShowFiltersButton().click(); - MapItemTypeFiltersOverlay.setFilters({ - [KnownMapItemTypeFilters.StopArea]: false, - }); - MapObservationDateFiltersOverlay.getToggleShowFiltersButton().click(); - FilterPanel.toggleShowStops(ReusableComponentsVehicleModeEnum.Bus); - Map.waitForLoadToComplete(); - - // Make sure terminal is visible - Map.getTerminalById('T2').shouldBeVisible(); - - // All stops should also be visible - assertStopsAreVisible(); - - // But clicking the terminal infobox open, only members should be shown. - Map.getTerminalById('T2').click(); - Map.waitForLoadToComplete(); - assertStopsAreNotOnMap(); - Map.getMemberStop('E2E008').shouldBeVisible(); - Map.getMemberStop('E2E010').shouldBeVisible(); - - // Set terminals to be hidden - MapObservationDateFiltersOverlay.getToggleShowFiltersButton().click(); - MapItemTypeFiltersOverlay.setFilters({ - [KnownMapItemTypeFilters.Terminal]: false, - }); - Map.getTerminalById('T2').should('not.exist'); + // Hide stop areas, no effect on the tests, but they do cover up the + // member stops. Also stops should be visible + MapObservationDateFiltersOverlay.getToggleShowFiltersButton().click(); + MapItemTypeFiltersOverlay.setFilters({ + [KnownMapItemTypeFilters.StopArea]: false, + }); + MapObservationDateFiltersOverlay.getToggleShowFiltersButton().click(); + FilterPanel.toggleShowStops(ReusableComponentsVehicleModeEnum.Bus); + Map.waitForLoadToComplete(); + + // Make sure terminal is visible + Map.getTerminalById('T2').shouldBeVisible(); + + // All stops should also be visible + assertStopsAreVisible(); + + // But clicking the terminal infobox open, only members should be shown. + Map.getTerminalById('T2').click(); + Map.waitForLoadToComplete(); + assertStopsAreNotOnMap(); + Map.getMemberStop('E2E008').shouldBeVisible(); + Map.getMemberStop('E2E010').shouldBeVisible(); + + // Set terminals to be hidden + MapObservationDateFiltersOverlay.getToggleShowFiltersButton().click(); + MapItemTypeFiltersOverlay.setFilters({ + [KnownMapItemTypeFilters.Terminal]: false, }); + Map.getTerminalById('T2').should('not.exist'); + }); - it('should show & hide stops labels', () => { - // Wait for map to load - Map.waitForLoadToComplete(); + it('should show & hide stops labels', () => { + // Wait for map to load + Map.waitForLoadToComplete(); - // Make sure stops are visible - FilterPanel.toggleShowStops(ReusableComponentsVehicleModeEnum.Bus); - assertStopsAreVisible(); + // Make sure stops are visible + FilterPanel.toggleShowStops(ReusableComponentsVehicleModeEnum.Bus); + assertStopsAreVisible(); - // Labels should off by default - assertStopLabelsAre('hidden'); + // Labels should off by default + assertStopLabelsAre('hidden'); - // Set labels to be visible - MapObservationDateFiltersOverlay.getToggleShowFiltersButton().click(); - MapItemTypeFiltersOverlay.setFilters({ - [KnownMapItemTypeFilters.StopLabel]: true, - }); - assertStopLabelsAre('visible'); + // Set labels to be visible + MapObservationDateFiltersOverlay.getToggleShowFiltersButton().click(); + MapItemTypeFiltersOverlay.setFilters({ + [KnownMapItemTypeFilters.StopLabel]: true, + }); + assertStopLabelsAre('visible'); - // Toggle back to hidden - MapItemTypeFiltersOverlay.setFilters({ - [KnownMapItemTypeFilters.StopLabel]: false, - }); - assertStopLabelsAre('hidden'); + // Toggle back to hidden + MapItemTypeFiltersOverlay.setFilters({ + [KnownMapItemTypeFilters.StopLabel]: false, }); + assertStopLabelsAre('hidden'); }); }); diff --git a/cypress/e2e/stop-registry/stopAreaDetails.cy.ts b/cypress/e2e/stop-registry/stopAreaDetails.cy.ts index e77773f800..13950a0e15 100644 --- a/cypress/e2e/stop-registry/stopAreaDetails.cy.ts +++ b/cypress/e2e/stop-registry/stopAreaDetails.cy.ts @@ -2,6 +2,7 @@ import { KnownValueKey, StopAreaInput, StopRegistryGeoJsonType, + minimalQuayKeyValues, } from '@hsl/jore4-test-db-manager/dist/CypressSpecExports'; import { DateTime } from 'luxon'; import { @@ -76,9 +77,11 @@ describe('Stop area details', { tags: Tag.StopRegistry }, () => { quays: [ { publicCode: 'E2E001', + keyValues: minimalQuayKeyValues.slice(), }, { publicCode: 'E2E009', + keyValues: minimalQuayKeyValues.slice(), }, ], }, @@ -100,6 +103,7 @@ describe('Stop area details', { tags: Tag.StopRegistry }, () => { { publicCode: 'E2E003', keyValues: [ + ...minimalQuayKeyValues, { key: KnownValueKey.StreetAddress, values: ['Kalevankatu 32'], @@ -110,6 +114,7 @@ describe('Stop area details', { tags: Tag.StopRegistry }, () => { { publicCode: 'E2E006', keyValues: [ + ...minimalQuayKeyValues, { key: KnownValueKey.StreetAddress, values: ['Kalevankatu 32'], diff --git a/cypress/e2e/stop-registry/stopDetails.cy.ts b/cypress/e2e/stop-registry/stopDetails.cy.ts index 9a9130414c..15c0198e41 100644 --- a/cypress/e2e/stop-registry/stopDetails.cy.ts +++ b/cypress/e2e/stop-registry/stopDetails.cy.ts @@ -13,6 +13,7 @@ import { buildTimingPlace, extractInfrastructureLinkIdsFromResponse, mapToGetInfrastructureLinksByExternalIdsQuery, + minimalQuayKeyValues, quayH2003, quayV1562, seedInfoSpots, @@ -83,6 +84,7 @@ const stopAreaInput: Array = [ quays: [ { publicCode: 'H1122', + keyValues: minimalQuayKeyValues.slice(), }, ], }, @@ -589,7 +591,7 @@ describe('Stop details', { tags: [Tag.StopRegistry] }, () => { AlternativeNames.getAbbreviationEng().shouldHaveText('N.esplanade'); }); - it('should view and edit basic details text fields', {}, () => { + it('should view and edit basic details text fields', () => { StopDetailsPage.visit('H2003'); StopDetailsPage.page().shouldBeVisible(); @@ -650,108 +652,102 @@ describe('Stop details', { tags: [Tag.StopRegistry] }, () => { BasicDetailsViewCard.getElyNumber().shouldHaveText('1234568'); }); - it( - 'should view and edit basic details dropdowns and checkboxes', - {}, - () => { - StopDetailsPage.visit('H2003'); - StopDetailsPage.page().shouldBeVisible(); + it('should view and edit basic details dropdowns and checkboxes', () => { + StopDetailsPage.visit('H2003'); + StopDetailsPage.page().shouldBeVisible(); - BasicDetailsViewCard.getContent().shouldBeVisible(); + BasicDetailsViewCard.getContent().shouldBeVisible(); - BasicDetailsViewCard.getLabel().shouldHaveText('H2003'); - BasicDetailsViewCard.getTimingPlaceId().shouldHaveText('1AURLA'); - BasicDetailsViewCard.getStopType().shouldHaveText( - 'Raideliikennettä korvaava', - ); - BasicDetailsViewCard.getTransportMode().shouldHaveText('Bussi'); + BasicDetailsViewCard.getLabel().shouldHaveText('H2003'); + BasicDetailsViewCard.getTimingPlaceId().shouldHaveText('1AURLA'); + BasicDetailsViewCard.getStopType().shouldHaveText( + 'Raideliikennettä korvaava', + ); + BasicDetailsViewCard.getTransportMode().shouldHaveText('Bussi'); - // Make sure header row reflects these - StopDetailsPage.headerSummaryRow - .stopTypes() - .should('have.text', 'Raideliikennettä korvaava'); + // Make sure header row reflects these + StopDetailsPage.headerSummaryRow + .stopTypes() + .should('have.text', 'Raideliikennettä korvaava'); - StopDetailsPage.basicDetails.getEditButton().click(); + StopDetailsPage.basicDetails.getEditButton().click(); - // Verify correct initial values. - BasicDetailsForm.getRailReplacementCheckbox().should('be.checked'); - BasicDetailsForm.getVirtualCheckbox().should('not.be.checked'); - BasicDetailsForm.getTrunkLineStopCheckbox().should('not.be.checked'); - BasicDetailsForm.getTransportModeDropdownButton().shouldHaveText( - 'Bussi', - ); - BasicDetailsForm.getTimingPlaceDropdown().shouldHaveText( - '1AURLA (1AURLA)', - ); + // Verify correct initial values. + BasicDetailsForm.getRailReplacementCheckbox().should('be.checked'); + BasicDetailsForm.getVirtualCheckbox().should('not.be.checked'); + BasicDetailsForm.getTrunkLineStopCheckbox().should('not.be.checked'); + BasicDetailsForm.getTransportModeDropdownButton().shouldHaveText('Bussi'); + BasicDetailsForm.getTimingPlaceDropdown().shouldHaveText( + '1AURLA (1AURLA)', + ); - // Rail replacement is only available for transport mode: bus - BasicDetailsForm.getTransportModeDropdownButton().shouldBeDisabled(); - BasicDetailsForm.getVirtualCheckbox().click(); - BasicDetailsForm.getTrunkLineStopCheckbox().click(); + // Rail replacement is only available for transport mode: bus + BasicDetailsForm.getTransportModeDropdownButton().shouldBeDisabled(); + BasicDetailsForm.getVirtualCheckbox().click(); + BasicDetailsForm.getTrunkLineStopCheckbox().click(); - StopDetailsPage.basicDetails.getSaveButton().click(); + StopDetailsPage.basicDetails.getSaveButton().click(); - Toast.expectSuccessToast('Pysäkki muokattu'); + Toast.expectSuccessToast('Pysäkki muokattu'); - // Tiamat data model has some arrays that stores multiple types - // of data, so all these checks are here to make sure that - // the saves do not change other fields. - BasicDetailsViewCard.getLabel().shouldHaveText('H2003'); - BasicDetailsViewCard.getPrivateCode().shouldHaveText('10003'); - BasicDetailsViewCard.getLocationFin().shouldHaveText( - 'Pohjoisesplanadi (sij.)', - ); - BasicDetailsViewCard.getLocationSwe().shouldHaveText( - 'Norraesplanaden (plats)', - ); - BasicDetailsViewCard.getTransportMode().shouldHaveText('Bussi'); - BasicDetailsViewCard.getTimingPlaceId().shouldHaveText('1AURLA'); - BasicDetailsViewCard.getStopType().shouldHaveText( - 'Raideliikennettä korvaava, virtuaalipysäkki, runkolinjapysäkki', - ); - BasicDetailsViewCard.getStopState().shouldHaveText('Pois käytöstä'); - BasicDetailsViewCard.getElyNumber().shouldHaveText('1234567'); + // Tiamat data model has some arrays that stores multiple types + // of data, so all these checks are here to make sure that + // the saves do not change other fields. + BasicDetailsViewCard.getLabel().shouldHaveText('H2003'); + BasicDetailsViewCard.getPrivateCode().shouldHaveText('10003'); + BasicDetailsViewCard.getLocationFin().shouldHaveText( + 'Pohjoisesplanadi (sij.)', + ); + BasicDetailsViewCard.getLocationSwe().shouldHaveText( + 'Norraesplanaden (plats)', + ); + BasicDetailsViewCard.getTransportMode().shouldHaveText('Bussi'); + BasicDetailsViewCard.getTimingPlaceId().shouldHaveText('1AURLA'); + BasicDetailsViewCard.getStopType().shouldHaveText( + 'Raideliikennettä korvaava, virtuaalipysäkki, runkolinjapysäkki', + ); + BasicDetailsViewCard.getStopState().shouldHaveText('Pois käytöstä'); + BasicDetailsViewCard.getElyNumber().shouldHaveText('1234567'); - // Make sure header row reflects these - StopDetailsPage.headerSummaryRow - .stopTypes() - .should('have.text', 'Raideliikennettä korvaavaVirtuaalipysäkki'); - StopDetailsPage.headerSummaryRow - .stopState() - .should('have.text', 'Pois käytöstä'); + // Make sure header row reflects these + StopDetailsPage.headerSummaryRow + .stopTypes() + .should('have.text', 'Raideliikennettä korvaavaVirtuaalipysäkki'); + StopDetailsPage.headerSummaryRow + .stopState() + .should('have.text', 'Pois käytöstä'); - StopDetailsPage.basicDetails.getEditButton().click(); + StopDetailsPage.basicDetails.getEditButton().click(); - BasicDetailsForm.getRailReplacementCheckbox().click(); - BasicDetailsForm.getTrunkLineStopCheckbox().click(); - BasicDetailsForm.getTransportModeDropdownButton().click(); - BasicDetailsForm.getTransportModeDropdownOptions() - .contains('Raitiovaunu') - .click(); + BasicDetailsForm.getRailReplacementCheckbox().click(); + BasicDetailsForm.getTrunkLineStopCheckbox().click(); + BasicDetailsForm.getTransportModeDropdownButton().click(); + BasicDetailsForm.getTransportModeDropdownOptions() + .contains('Raitiovaunu') + .click(); - // Rail replacement & TrunkLine are only available for transport mode: bus - BasicDetailsForm.getRailReplacementCheckbox().shouldBeDisabled(); - BasicDetailsForm.getTrunkLineStopCheckbox().shouldBeDisabled(); + // Rail replacement & TrunkLine are only available for transport mode: bus + BasicDetailsForm.getRailReplacementCheckbox().shouldBeDisabled(); + BasicDetailsForm.getTrunkLineStopCheckbox().shouldBeDisabled(); - BasicDetailsForm.getStopPlaceStateDropdownButton().click(); - BasicDetailsForm.getStopPlaceStateDropdownOptions() - .contains('Käytössä') - .click(); - BasicDetailsForm.getTimingPlaceDropdown().type('1AACKT'); + BasicDetailsForm.getStopPlaceStateDropdownButton().click(); + BasicDetailsForm.getStopPlaceStateDropdownOptions() + .contains('Käytössä') + .click(); + BasicDetailsForm.getTimingPlaceDropdown().type('1AACKT'); - cy.get('[role="option"]').contains('1AACKT').click(); + cy.get('[role="option"]').contains('1AACKT').click(); - StopDetailsPage.basicDetails.getSaveButton().click(); - Toast.expectSuccessToast('Pysäkki muokattu'); + StopDetailsPage.basicDetails.getSaveButton().click(); + Toast.expectSuccessToast('Pysäkki muokattu'); - BasicDetailsViewCard.getTransportMode().shouldHaveText('Raitiovaunu'); - BasicDetailsViewCard.getStopState().shouldHaveText('Käytössä'); - BasicDetailsViewCard.getTimingPlaceId().shouldHaveText('1AACKT'); + BasicDetailsViewCard.getTransportMode().shouldHaveText('Raitiovaunu'); + BasicDetailsViewCard.getStopState().shouldHaveText('Käytössä'); + BasicDetailsViewCard.getTimingPlaceId().shouldHaveText('1AACKT'); - // Make sure header row reflects these - StopDetailsPage.headerSummaryRow.stopState().should('not.exist'); - }, - ); + // Make sure header row reflects these + StopDetailsPage.headerSummaryRow.stopState().should('not.exist'); + }); it('Should show character limit reached message for reason for change', () => { StopDetailsPage.visit('H2003'); @@ -875,7 +871,7 @@ describe('Stop details', { tags: [Tag.StopRegistry] }, () => { }); describe('location details', () => { - it('should view location details', {}, () => { + it('should view location details', () => { StopDetailsPage.visit('H2003'); StopDetailsPage.page().shouldBeVisible(); @@ -2066,7 +2062,7 @@ describe('Stop details', { tags: [Tag.StopRegistry] }, () => { InfoSpotViewCard.getSectionContainers().shouldBeVisible(); }); - it('should view and edit info spot details', {}, () => { + it('should view and edit info spot details', () => { verifyInitialInfoSpots(); const infoSpot = InfoSpotsForm.infoSpots; diff --git a/cypress/e2e/stop-registry/stopSearch.cy.ts b/cypress/e2e/stop-registry/stopSearch.cy.ts index b05f81bbf9..498ac5b58f 100644 --- a/cypress/e2e/stop-registry/stopSearch.cy.ts +++ b/cypress/e2e/stop-registry/stopSearch.cy.ts @@ -1251,6 +1251,10 @@ describe('Stop search', { tags: [Tag.StopRegistry, Tag.Search] }, () => { key: KnownValueKey.ValidityEnd, values: [stopPoint.validity_end?.toISODate() ?? null], }, + { + key: KnownValueKey.StopState, + values: [StopPlaceState.InOperation], + }, { key: KnownValueKey.ImportedId, values: [ diff --git a/cypress/e2e/stop-registry/stopVersions.cy.ts b/cypress/e2e/stop-registry/stopVersions.cy.ts index b14033aa42..0cf31a9637 100644 --- a/cypress/e2e/stop-registry/stopVersions.cy.ts +++ b/cypress/e2e/stop-registry/stopVersions.cy.ts @@ -15,7 +15,7 @@ import { testInfraLinkExternalIds, } from '../../datasets/base'; import { getClonedBaseStopRegistryData } from '../../datasets/stopRegistry'; -import { Tag } from '../../enums'; +import { StopPlaceState, Tag } from '../../enums'; import { Map, MapObservationDateFiltersOverlay } from '../../pageObjects/map'; import { StopDetailsPage, @@ -72,6 +72,7 @@ function makeStopVersion(info: StopVersionInfo): StopVersionOutput { key: KnownValueKey.ImportedId, values: [(importedId++).toString(10)], }, + { key: KnownValueKey.StopState, values: [StopPlaceState.InOperation] }, ]), versionComment: comment, geometry: { diff --git a/cypress/fixtures/csvReports/InfoSpotDetailsHardCodedData.csv b/cypress/fixtures/csvReports/InfoSpotDetailsHardCodedData.csv index 511962d7e9..5cb8205439 100644 --- a/cypress/fixtures/csvReports/InfoSpotDetailsHardCodedData.csv +++ b/cypress/fixtures/csvReports/InfoSpotDetailsHardCodedData.csv @@ -1,15 +1,15 @@ PERUSTIEDOT;TARKASTELUHETKI;1.1.2025;;;;;;;;;;;;;;;;;;;VOIMASSAOLO;;;;SIJAINTI;;;;;;;;;;;;YLLÄPITO;;;;;;;;PYSÄKKIKILVET;;;;;MITAT JA ESTEETTÖMYYS;;;;;;;;;;;;;;;;;;;;;;;;;;KATOS;;;;;;;;;;;;;;INFOPAIKAT;;;;;;;;;;;;;;;; Lyhyttunnus;Nimi (suomi);Nimi (ruotsi);Nimi (englanti);ELY-numero;Pysäkkialue;Tunnus;Pitkänimi (suomi);Pitkänimi (ruotsi);Pitkänimi (englanti);Lyhenne (suomi);Lyhenne (ruotsi);Lyhenne (englanti);Sijainti (suomi);Sijainti (ruotsi);Pysäkin tila;Joukkoliikennetyyppi;Hastus-paikka;Raideliikennettä korvaava;Virtuaalipysäkki;;Alkaa;Päättyy;Prioriteetti;;Pysäkin osoite;Postinumero;Kunta;Maksuvyöhyke;Leveysaste;Pituusaste;Korkeus;Toiminnallinen alue;Laiturinumero;Opastetyyppi;Jäsenlaiturit;;Pysäkin omistaja;Katoksen omistaja;Katoksen kunnossapito;Tiealueen kunnossapito;Talvikunnossapito;Infohoito (staattinen);Siivous;;Pysäkkikilpien tyyppi;Kilpikehikoiden määrä;Kilvitysohjeen poikkeus;Raideliikennettä korvaava;;Pysäkin tyyppi;Kaareva;Katos;Katoksen ja ajoradan välinen leveys (cm);Reunakiven etäisyys kiskon selästä (cm);Pysäkkialueen sivukaltevuus (%);Pysäkkialueen pituuskaltevuus (%);Rakenteiden ja ajoradan välinen pienin leveys (cm);Pysäkin korotus kiskon ajopintaan nähden (cm);Pysäkin korotus jalkakäytävään nähden (cm);Alapienan korkeus (cm);Pysäkkialueen varoitusalue;Esteetön yhteys jalkakäytävältä pysäkille;Opasteraita;Palvelualueen raidoitus;Opasteet;Opaslaatat;Kartta;Reunakiven etäisyys kiskon ajoreunasta (cm);Päätyluiskan kaltevuus (%);Palvelualueen leveys (m);Palvelualueen pituus (m);Suojatien luiskaus;Pysäkin ympäristö;;Katosten lukumäärä;Katoksen nro;Varustenumero;Katoksen tyyppi;Sähkö;Valaistus;Katoksen kunto;Aikataulukaappeja (kpl);Roska-astia;Näyttölaite;Pyöräpysäköinti;Nojailutanko;Ulkopenkki;Pysäkkikatoksen otsalaudan teippaus;;Infopaikan tunnus;Käyttötarkoitus;Infopaikan koko;Taustavalo;Leveysaste;Pituusaste;Vyöhyketunnus;Raidetieto;Kerros;Kuvaus;Infotuotteen 1 koko;Infotuote 1;Infotuotteen 1 lisätieto;Infotuotteen 2 koko;Infotuote 2;Infotuotteen 2 lisätieto; -E2E001;Annankatu 15;Annasgatan 15;Annas street 15;E2E001;X0003;;Annankatu 15 pitkänimi;Annasgatan 15 långnamn;Annas street 15 long name;Annankatu 15;Annasgatan 15;Annas street 15;Annankatu 15;;;;1AACKT;Ei;Ei;;20.3.2020;;Perusversio;;Annankatu 15;;Helsinki;A;60,16551299;24,93900912;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E002;Annankatu 20;Annasgatan 20;;E2E002;E2E002;;Annankatu 20 pitkänimi;Annasgatan 20 långnamn;;Annankatu 20;Annasgatan 20;;;Plats Annasgatan 20;;;;Ei;Ei;;20.3.2020;;Perusversio;;Annankatu 20;;Helsinki;A;60,1664863;24,93761067;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E003;Kalevankatu 32;;;E2E003;X0004;;;;;;;;;;;;1AURLA;Ei;Ei;;20.3.2020;;Perusversio;;Kalevankatu 32;;Helsinki;A;60,16564456;24,93286261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E004;Albertinkatu 38;Albertsgatan 38;;E2E004;E2E004;;Albertinkatu 38 (pitkä);Albertsgatan 38 (lång);;;;;;;;;;Ei;Ei;;20.3.2020;;Perusversio;;Albertinkatu 38;;Helsinki;A;60,16486924;24,93229014;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E005;Lönnrotinkatu 32;;;E2E005;E2E005;;;;;;;;;;;;1EIRA;Ei;Ei;;20.3.2020;;Perusversio;;Lönnrotinkatu 32;;Helsinki;A;60,16398077;24,93140281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E006;Kalevankatu 32;;;E2E006;X0004;;;;;;;;;;;;1AURLA;Ei;Ei;;20.3.2020;;Perusversio;;Kalevankatu 32;;Helsinki;A;60,16543343;24,93296735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E007;Kalevankatu 18;;;E2E007;E2E007;;;;;;;;;;;;;Ei;Ei;;20.3.2020;;Perusversio;;Kalevankatu 18;;Helsinki;A;60,16398077;24,93140281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E008;Kuttulammentie;;;E2E008;E2E008;;;;;;;;;;;;;Ei;Ei;;20.3.2020;;Perusversio;;Kuttulammentie 15;;Helsinki;A;60,16398077;24,93140281;;;A3;;;;;;;;;;;;;;;Ei;;;;;;;;;;;;;;;;;;;;;;;;;;;1;1;12345;Teräskatos;Jatkuva sähkö;Valaistus;Välttävä;1;Roska-astia;Näyttölaite;Pyöräpysäköinti;Nojailutanko;Ulkopenkki;Pysäkkikatoksen otsalaudan teippaus;;E2E_INFO_001;Tiedotteet;80 × 120 cm;Taustavalo;;;Kyllä;1;1;Terminaalin infopiste;A4 (21.0 × 29.7 cm);E2E_POSTER_001;1, 2, 3;;;; -E2E009;Annankatu 15;Annasgatan 15;Annas street 15;E2E009;X0003;;Annankatu 15 pitkänimi;Annasgatan 15 långnamn;Annas street 15 long name;Annankatu 15;Annasgatan 15;Annas street 15;Annankatu 15;;;;1AACKT;Ei;Ei;;20.3.2020;;Perusversio;;Annankatu 15;;Helsinki;A;60,16537653;24,93877038;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E010;Finnoonkartano;;;E2E010;E2E010;;;;;;;;;;;;1AACKT;Ei;Ei;;20.3.2020;;Perusversio;;Finnoonkartano;;Espoo;C;60,16398077;24,93140281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E011;Eteläinen Hesperiankatu;;;E2E011;E2E011;;;;;;;;;;;;1AACKT;Ei;Ei;;20.3.2020;1.1.2052;Perusversio;;Eteläinen Hesperiankatu;;Helsinki;A;60,176133;24,920286;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E001;Annankatu 15;Annasgatan 15;Annas street 15;E2E001;X0003;;Annankatu 15 pitkänimi;Annasgatan 15 långnamn;Annas street 15 long name;Annankatu 15;Annasgatan 15;Annas street 15;Annankatu 15;;Käytössä;Bussi;1AACKT;Ei;Ei;;20.3.2020;;Perusversio;;Annankatu 15;;Helsinki;A;60,16551299;24,93900912;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E002;Annankatu 20;Annasgatan 20;;E2E002;E2E002;;Annankatu 20 pitkänimi;Annasgatan 20 långnamn;;Annankatu 20;Annasgatan 20;;;Plats Annasgatan 20;Käytössä;Bussi;;Ei;Ei;;20.3.2020;;Perusversio;;Annankatu 20;;Helsinki;A;60,1664863;24,93761067;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E003;Kalevankatu 32;;;E2E003;X0004;;;;;;;;;;Käytössä;Bussi;1AURLA;Ei;Ei;;20.3.2020;;Perusversio;;Kalevankatu 32;;Helsinki;A;60,16564456;24,93286261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E004;Albertinkatu 38;Albertsgatan 38;;E2E004;E2E004;;Albertinkatu 38 (pitkä);Albertsgatan 38 (lång);;;;;;;Käytössä;Bussi;;Ei;Ei;;20.3.2020;;Perusversio;;Albertinkatu 38;;Helsinki;A;60,16486924;24,93229014;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E005;Lönnrotinkatu 32;;;E2E005;E2E005;;;;;;;;;;Käytössä;Bussi;1EIRA;Ei;Ei;;20.3.2020;;Perusversio;;Lönnrotinkatu 32;;Helsinki;A;60,16398077;24,93140281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E006;Kalevankatu 32;;;E2E006;X0004;;;;;;;;;;Käytössä;Bussi;1AURLA;Ei;Ei;;20.3.2020;;Perusversio;;Kalevankatu 32;;Helsinki;A;60,16543343;24,93296735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E007;Kalevankatu 18;;;E2E007;E2E007;;;;;;;;;;Käytössä;Bussi;;Ei;Ei;;20.3.2020;;Perusversio;;Kalevankatu 18;;Helsinki;A;60,16398077;24,93140281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E008;Kuttulammentie;;;E2E008;E2E008;;;;;;;;;;Käytössä;Bussi;;Ei;Ei;;20.3.2020;;Perusversio;;Kuttulammentie 15;;Helsinki;A;60,16398077;24,93140281;;;A3;;;;;;;;;;;;;;;Ei;;;;;;;;;;;;;;;;;;;;;;;;;;;1;1;12345;Teräskatos;Jatkuva sähkö;Valaistus;Välttävä;1;Roska-astia;Näyttölaite;Pyöräpysäköinti;Nojailutanko;Ulkopenkki;Pysäkkikatoksen otsalaudan teippaus;;E2E_INFO_001;Tiedotteet;80 × 120 cm;Taustavalo;;;Kyllä;1;1;Terminaalin infopiste;A4 (21.0 × 29.7 cm);E2E_POSTER_001;1, 2, 3;;;; +E2E009;Annankatu 15;Annasgatan 15;Annas street 15;E2E009;X0003;;Annankatu 15 pitkänimi;Annasgatan 15 långnamn;Annas street 15 long name;Annankatu 15;Annasgatan 15;Annas street 15;Annankatu 15;;Käytössä;Bussi;1AACKT;Ei;Ei;;20.3.2020;;Perusversio;;Annankatu 15;;Helsinki;A;60,16537653;24,93877038;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E010;Finnoonkartano;;;E2E010;E2E010;;;;;;;;;;Käytössä;Bussi;1AACKT;Ei;Ei;;20.3.2020;;Perusversio;;Finnoonkartano;;Espoo;C;60,16398077;24,93140281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E011;Eteläinen Hesperiankatu;;;E2E011;E2E011;;;;;;;;;;Käytössä;Bussi;1AACKT;Ei;Ei;;20.3.2020;1.1.2052;Perusversio;;Eteläinen Hesperiankatu;;Helsinki;A;60,176133;24,920286;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; E2E099;Infopaikka raportti - monen infopaikan testi;;;;EI002;;;;;;;;;;Käytössä;Bussi;;Ei;Ei;;1.1.2025;;Perusversio;;;;;;60,1756;24,9342;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1;1;;Urbankatos;;;;;;;;;;;;InfoSpot 1;;10 × 20 cm;;;;Ei tiedossa;;;;5 × 5 cm;Poster 1;Line;;;; E2E099;Infopaikka raportti - monen infopaikan testi;;;;EI002;;;;;;;;;;Käytössä;Bussi;;Ei;Ei;;1.1.2025;;Perusversio;;;;;;60,1756;24,9342;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1;1;;Urbankatos;;;;;;;;;;;;InfoSpot 2;;12 × 22 cm;;;;Ei tiedossa;;;;7 × 7 cm;Poster 2;Notes;6 × 6 cm;Poster 3;; diff --git a/cypress/fixtures/csvReports/equipmentDetailsHardCodedData.csv b/cypress/fixtures/csvReports/equipmentDetailsHardCodedData.csv index 28381a3666..cede9bbb3f 100644 --- a/cypress/fixtures/csvReports/equipmentDetailsHardCodedData.csv +++ b/cypress/fixtures/csvReports/equipmentDetailsHardCodedData.csv @@ -1,14 +1,14 @@ PERUSTIEDOT;TARKASTELUHETKI;1.1.2025;;;;;;;;;;;;;;;;;;;VOIMASSAOLO;;;;SIJAINTI;;;;;;;;;;;;YLLÄPITO;;;;;;;;PYSÄKKIKILVET;;;;;MITAT JA ESTEETTÖMYYS;;;;;;;;;;;;;;;;;;;;;;;;;;KATOS 1;;;;;;;;;;;;;;INFOPAIKAT KATOS 1;;;;;;;;;;;;;INFOPAIKAT KATOS 1;;;;;;;;;;;;;;;; Lyhyttunnus;Nimi (suomi);Nimi (ruotsi);Nimi (englanti);ELY-numero;Pysäkkialue;Tunnus;Pitkänimi (suomi);Pitkänimi (ruotsi);Pitkänimi (englanti);Lyhenne (suomi);Lyhenne (ruotsi);Lyhenne (englanti);Sijainti (suomi);Sijainti (ruotsi);Pysäkin tila;Joukkoliikennetyyppi;Hastus-paikka;Raideliikennettä korvaava;Virtuaalipysäkki;;Alkaa;Päättyy;Prioriteetti;;Pysäkin osoite;Postinumero;Kunta;Maksuvyöhyke;Leveysaste;Pituusaste;Korkeus;Toiminnallinen alue;Laiturinumero;Opastetyyppi;Jäsenlaiturit;;Pysäkin omistaja;Katoksen omistaja;Katoksen kunnossapito;Tiealueen kunnossapito;Talvikunnossapito;Infohoito (staattinen);Siivous;;Pysäkkikilpien tyyppi;Kilpikehikoiden määrä;Kilvitysohjeen poikkeus;Raideliikennettä korvaava;;Pysäkin tyyppi;Kaareva;Katos;Katoksen ja ajoradan välinen leveys (cm);Reunakiven etäisyys kiskon selästä (cm);Pysäkkialueen sivukaltevuus (%);Pysäkkialueen pituuskaltevuus (%);Rakenteiden ja ajoradan välinen pienin leveys (cm);Pysäkin korotus kiskon ajopintaan nähden (cm);Pysäkin korotus jalkakäytävään nähden (cm);Alapienan korkeus (cm);Pysäkkialueen varoitusalue;Esteetön yhteys jalkakäytävältä pysäkille;Opasteraita;Palvelualueen raidoitus;Opasteet;Opaslaatat;Kartta;Reunakiven etäisyys kiskon ajoreunasta (cm);Päätyluiskan kaltevuus (%);Palvelualueen leveys (m);Palvelualueen pituus (m);Suojatien luiskaus;Pysäkin ympäristö;;Katosten lukumäärä;Katos 1 Katoksen nro;Katos 1 Varustenumero;Katos 1 Katoksen tyyppi;Katos 1 Sähkö;Katos 1 Valaistus;Katos 1 Katoksen kunto;Katos 1 Aikataulukaappeja (kpl);Katos 1 Roska-astia;Katos 1 Näyttölaite;Katos 1 Pyöräpysäköinti;Katos 1 Nojailutanko;Katos 1 Ulkopenkki;Katos 1 Pysäkkikatoksen otsalaudan teippaus;;Tunnus - Katos 1 - Infopaikka 1;Käyttötarkoitus - Katos 1 - Infopaikka 1;Koko - Katos 1 - Infopaikka 1;Taustavalo - Katos 1 - Infopaikka 1;Leveysaste - Katos 1 - Infopaikka 1;Pituusaste - Katos 1 - Infopaikka 1;Vyöhyketunnus - Katos 1 - Infopaikka 1;Raidetieto - Katos 1 - Infopaikka 1;Kerros - Katos 1 - Infopaikka 1;Kuvaus - Katos 1 - Infopaikka 1;Koko - Katos 1 - Infopaikka 1 - Tuote 1;Painotuote - Katos 1 - Infopaikka 1 - Tuote 1;Lisätieto - Katos 1 - Infopaikka 1 - Tuote 1;Tunnus - Katos 1 - Infopaikka 2;Käyttötarkoitus - Katos 1 - Infopaikka 2;Koko - Katos 1 - Infopaikka 2;Taustavalo - Katos 1 - Infopaikka 2;Leveysaste - Katos 1 - Infopaikka 2;Pituusaste - Katos 1 - Infopaikka 2;Vyöhyketunnus - Katos 1 - Infopaikka 2;Raidetieto - Katos 1 - Infopaikka 2;Kerros - Katos 1 - Infopaikka 2;Kuvaus - Katos 1 - Infopaikka 2;Koko - Katos 1 - Infopaikka 2 - Tuote 1;Painotuote - Katos 1 - Infopaikka 2 - Tuote 1;Lisätieto - Katos 1 - Infopaikka 2 - Tuote 1;Koko - Katos 1 - Infopaikka 2 - Tuote 2;Painotuote - Katos 1 - Infopaikka 2 - Tuote 2;Lisätieto - Katos 1 - Infopaikka 2 - Tuote 2; -E2E001;Annankatu 15;Annasgatan 15;Annas street 15;E2E001;X0003;;Annankatu 15 pitkänimi;Annasgatan 15 långnamn;Annas street 15 long name;Annankatu 15;Annasgatan 15;Annas street 15;Annankatu 15;;;;1AACKT;Ei;Ei;;20.3.2020;;Perusversio;;Annankatu 15;;Helsinki;A;60,16551299;24,93900912;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E002;Annankatu 20;Annasgatan 20;;E2E002;E2E002;;Annankatu 20 pitkänimi;Annasgatan 20 långnamn;;Annankatu 20;Annasgatan 20;;;Plats Annasgatan 20;;;;Ei;Ei;;20.3.2020;;Perusversio;;Annankatu 20;;Helsinki;A;60,1664863;24,93761067;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E003;Kalevankatu 32;;;E2E003;X0004;;;;;;;;;;;;1AURLA;Ei;Ei;;20.3.2020;;Perusversio;;Kalevankatu 32;;Helsinki;A;60,16564456;24,93286261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E004;Albertinkatu 38;Albertsgatan 38;;E2E004;E2E004;;Albertinkatu 38 (pitkä);Albertsgatan 38 (lång);;;;;;;;;;Ei;Ei;;20.3.2020;;Perusversio;;Albertinkatu 38;;Helsinki;A;60,16486924;24,93229014;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E005;Lönnrotinkatu 32;;;E2E005;E2E005;;;;;;;;;;;;1EIRA;Ei;Ei;;20.3.2020;;Perusversio;;Lönnrotinkatu 32;;Helsinki;A;60,16398077;24,93140281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E006;Kalevankatu 32;;;E2E006;X0004;;;;;;;;;;;;1AURLA;Ei;Ei;;20.3.2020;;Perusversio;;Kalevankatu 32;;Helsinki;A;60,16543343;24,93296735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E007;Kalevankatu 18;;;E2E007;E2E007;;;;;;;;;;;;;Ei;Ei;;20.3.2020;;Perusversio;;Kalevankatu 18;;Helsinki;A;60,16398077;24,93140281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E008;Kuttulammentie;;;E2E008;E2E008;;;;;;;;;;;;;Ei;Ei;;20.3.2020;;Perusversio;;Kuttulammentie 15;;Helsinki;A;60,16398077;24,93140281;;;A3;;;;;;;;;;;;;;;Ei;;;;;;;;;;;;;;;;;;;;;;;;;;;1;1;12345;Teräskatos;Jatkuva sähkö;Valaistus;Välttävä;1;Roska-astia;Näyttölaite;Pyöräpysäköinti;Nojailutanko;Ulkopenkki;Pysäkkikatoksen otsalaudan teippaus;;E2E_INFO_001;Tiedotteet;80 × 120 cm;Taustavalo;;;Kyllä;1;1;Terminaalin infopiste;A4 (21.0 × 29.7 cm);E2E_POSTER_001;1, 2, 3;;;;;;;;;;;;;;;;; -E2E009;Annankatu 15;Annasgatan 15;Annas street 15;E2E009;X0003;;Annankatu 15 pitkänimi;Annasgatan 15 långnamn;Annas street 15 long name;Annankatu 15;Annasgatan 15;Annas street 15;Annankatu 15;;;;1AACKT;Ei;Ei;;20.3.2020;;Perusversio;;Annankatu 15;;Helsinki;A;60,16537653;24,93877038;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E010;Finnoonkartano;;;E2E010;E2E010;;;;;;;;;;;;1AACKT;Ei;Ei;;20.3.2020;;Perusversio;;Finnoonkartano;;Espoo;C;60,16398077;24,93140281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -E2E011;Eteläinen Hesperiankatu;;;E2E011;E2E011;;;;;;;;;;;;1AACKT;Ei;Ei;;20.3.2020;1.1.2052;Perusversio;;Eteläinen Hesperiankatu;;Helsinki;A;60,176133;24,920286;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E001;Annankatu 15;Annasgatan 15;Annas street 15;E2E001;X0003;;Annankatu 15 pitkänimi;Annasgatan 15 långnamn;Annas street 15 long name;Annankatu 15;Annasgatan 15;Annas street 15;Annankatu 15;;Käytössä;Bussi;1AACKT;Ei;Ei;;20.3.2020;;Perusversio;;Annankatu 15;;Helsinki;A;60,16551299;24,93900912;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E002;Annankatu 20;Annasgatan 20;;E2E002;E2E002;;Annankatu 20 pitkänimi;Annasgatan 20 långnamn;;Annankatu 20;Annasgatan 20;;;Plats Annasgatan 20;Käytössä;Bussi;;Ei;Ei;;20.3.2020;;Perusversio;;Annankatu 20;;Helsinki;A;60,1664863;24,93761067;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E003;Kalevankatu 32;;;E2E003;X0004;;;;;;;;;;Käytössä;Bussi;1AURLA;Ei;Ei;;20.3.2020;;Perusversio;;Kalevankatu 32;;Helsinki;A;60,16564456;24,93286261;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E004;Albertinkatu 38;Albertsgatan 38;;E2E004;E2E004;;Albertinkatu 38 (pitkä);Albertsgatan 38 (lång);;;;;;;Käytössä;Bussi;;Ei;Ei;;20.3.2020;;Perusversio;;Albertinkatu 38;;Helsinki;A;60,16486924;24,93229014;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E005;Lönnrotinkatu 32;;;E2E005;E2E005;;;;;;;;;;Käytössä;Bussi;1EIRA;Ei;Ei;;20.3.2020;;Perusversio;;Lönnrotinkatu 32;;Helsinki;A;60,16398077;24,93140281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E006;Kalevankatu 32;;;E2E006;X0004;;;;;;;;;;Käytössä;Bussi;1AURLA;Ei;Ei;;20.3.2020;;Perusversio;;Kalevankatu 32;;Helsinki;A;60,16543343;24,93296735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E007;Kalevankatu 18;;;E2E007;E2E007;;;;;;;;;;Käytössä;Bussi;;Ei;Ei;;20.3.2020;;Perusversio;;Kalevankatu 18;;Helsinki;A;60,16398077;24,93140281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E008;Kuttulammentie;;;E2E008;E2E008;;;;;;;;;;Käytössä;Bussi;;Ei;Ei;;20.3.2020;;Perusversio;;Kuttulammentie 15;;Helsinki;A;60,16398077;24,93140281;;;A3;;;;;;;;;;;;;;;Ei;;;;;;;;;;;;;;;;;;;;;;;;;;;1;1;12345;Teräskatos;Jatkuva sähkö;Valaistus;Välttävä;1;Roska-astia;Näyttölaite;Pyöräpysäköinti;Nojailutanko;Ulkopenkki;Pysäkkikatoksen otsalaudan teippaus;;E2E_INFO_001;Tiedotteet;80 × 120 cm;Taustavalo;;;Kyllä;1;1;Terminaalin infopiste;A4 (21.0 × 29.7 cm);E2E_POSTER_001;1, 2, 3;;;;;;;;;;;;;;;;; +E2E009;Annankatu 15;Annasgatan 15;Annas street 15;E2E009;X0003;;Annankatu 15 pitkänimi;Annasgatan 15 långnamn;Annas street 15 long name;Annankatu 15;Annasgatan 15;Annas street 15;Annankatu 15;;Käytössä;Bussi;1AACKT;Ei;Ei;;20.3.2020;;Perusversio;;Annankatu 15;;Helsinki;A;60,16537653;24,93877038;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E010;Finnoonkartano;;;E2E010;E2E010;;;;;;;;;;Käytössä;Bussi;1AACKT;Ei;Ei;;20.3.2020;;Perusversio;;Finnoonkartano;;Espoo;C;60,16398077;24,93140281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +E2E011;Eteläinen Hesperiankatu;;;E2E011;E2E011;;;;;;;;;;Käytössä;Bussi;1AACKT;Ei;Ei;;20.3.2020;1.1.2052;Perusversio;;Eteläinen Hesperiankatu;;Helsinki;A;60,176133;24,920286;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; E2E099;Infopaikka raportti - monen infopaikan testi;;;;EI002;;;;;;;;;;Käytössä;Bussi;;Ei;Ei;;1.1.2025;;Perusversio;;;;;;60,1756;24,9342;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1;1;;Urbankatos;;;;;;;;;;;;InfoSpot 1;;10 × 20 cm;;;;Ei tiedossa;;;;5 × 5 cm;Poster 1;Line;InfoSpot 2;;12 × 22 cm;;;;Ei tiedossa;;;;7 × 7 cm;Poster 2;Notes;6 × 6 cm;Poster 3;; diff --git a/test-db-manager/src/datasets/stopRegistry/stopPlaces.ts b/test-db-manager/src/datasets/stopRegistry/stopPlaces.ts index a84959c02f..40cdced9c6 100644 --- a/test-db-manager/src/datasets/stopRegistry/stopPlaces.ts +++ b/test-db-manager/src/datasets/stopRegistry/stopPlaces.ts @@ -1,3 +1,4 @@ +import compact from 'lodash/compact'; import { StopRegistryAccessibilityLevel, StopRegistryAccessibilityLimitationsInput, @@ -7,6 +8,7 @@ import { StopRegistryGeoJsonType, StopRegistryGuidanceType, StopRegistryHslAccessibilityProperties, + StopRegistryKeyValuesInput, StopRegistryLimitationStatusType, StopRegistryMapType, StopRegistryNameType, @@ -46,8 +48,10 @@ export type StopPlaceQuaySeedData = { elyNumber?: string; stopState?: string /* See StopPlaceState */; stopType?: { - railReplacement: boolean; - virtual: boolean; + railReplacement?: boolean; + virtual?: boolean; + trunkLineStop?: boolean; + speedTramStop?: boolean; }; locationLat: number; locationLong: number; @@ -182,22 +186,38 @@ const mapToQuayInput = (seedStopPlace: StopPlaceQuaySeedData): QuayInput => { externalLinks: seedStopPlace.externalLinks, - keyValues: [ + keyValues: compact([ getKeyValue(KnownValueKey.ElyNumber, seedStopPlace.elyNumber), getKeyValue(KnownValueKey.StreetAddress, seedStopPlace.streetAddress), getKeyValue(KnownValueKey.PostalCode, seedStopPlace.postalCode), getKeyValue(KnownValueKey.FunctionalArea, seedStopPlace.functionalArea), - getKeyValue(KnownValueKey.StopState, seedStopPlace.stopState), + getKeyValue( + KnownValueKey.StopState, + seedStopPlace.stopState, + 'InOperation', + ), getKeyValue( KnownValueKey.RailReplacement, seedStopPlace.stopType?.railReplacement, ), getKeyValue(KnownValueKey.Virtual, seedStopPlace.stopType?.virtual), - getKeyValue(KnownValueKey.Priority, seedStopPlace.priority), - getKeyValue(KnownValueKey.ValidityStart, seedStopPlace.validityStart), + getKeyValue( + KnownValueKey.SpeedTramStop, + seedStopPlace.stopType?.speedTramStop, + ), + getKeyValue( + KnownValueKey.TrunkLineStop, + seedStopPlace.stopType?.trunkLineStop, + ), + getKeyValue(KnownValueKey.Priority, seedStopPlace.priority, 10), + getKeyValue( + KnownValueKey.ValidityStart, + seedStopPlace.validityStart, + '1990-01-01', + ), getKeyValue(KnownValueKey.ValidityEnd, seedStopPlace.validityEnd), getKeyValue(KnownValueKey.StopOwner, seedStopPlace.stopOwner), - ], + ]), }, }; }; @@ -414,3 +434,9 @@ const seedData: Array = [ export const seedQuays: Array = seedData.map(mapToQuayInput); export const quayH2003 = mapToQuayInput(H2003); export const quayV1562 = mapToQuayInput(route530Stops[0]); + +export const minimalQuayKeyValues: ReadonlyArray = [ + { key: KnownValueKey.ValidityStart, values: ['1990-01-01'] }, + { key: KnownValueKey.Priority, values: ['10'] }, + { key: KnownValueKey.StopState, values: ['InOperation'] }, +]; diff --git a/test-db-manager/src/datasets/stopRegistry/utils.ts b/test-db-manager/src/datasets/stopRegistry/utils.ts index 649380885f..8e3f334a77 100644 --- a/test-db-manager/src/datasets/stopRegistry/utils.ts +++ b/test-db-manager/src/datasets/stopRegistry/utils.ts @@ -4,13 +4,16 @@ import { isNotNullish } from '../../utils'; export const getKeyValue = ( key: KnownValueKey, - value: string | boolean | null | undefined, + value: string | boolean | number | null | undefined, + defaultValue?: string | boolean | number, ): StopRegistryKeyValuesInput | null => { if (isNotNullish(value)) { - return { - key, - values: [value.toString()], - }; + return { key, values: [value.toString()] }; } + + if (isNotNullish(defaultValue)) { + return { key, values: [defaultValue.toString()] }; + } + return null; }; diff --git a/test-db-manager/src/types/enums.ts b/test-db-manager/src/types/enums.ts index 78fee67979..5e4e431380 100644 --- a/test-db-manager/src/types/enums.ts +++ b/test-db-manager/src/types/enums.ts @@ -23,6 +23,8 @@ export enum KnownValueKey { OwnerContractId = 'owner-contractId', OwnerNote = 'owner-note', TimingPlaceId = 'timingPlaceId', + SpeedTramStop = 'speedTramStop', + TrunkLineStop = 'trunkLineStop', Mirrors = 'mirrors', } diff --git a/ui/src/components/forms/stop/StopForm.tsx b/ui/src/components/forms/stop/StopForm.tsx index b788d37dea..84fa8613de 100644 --- a/ui/src/components/forms/stop/StopForm.tsx +++ b/ui/src/components/forms/stop/StopForm.tsx @@ -19,6 +19,7 @@ import { useAppSelector } from '../../../hooks'; import { Visible } from '../../../layoutComponents'; import { Operation, selectIsTimingPlaceModalOpen } from '../../../redux'; import { RequiredKeys } from '../../../types'; +import { StopPlaceState } from '../../../types/stop-registry'; import { KnownValueKey, mapDateInputToValidityEnd, @@ -106,6 +107,7 @@ function mapFormStateToQuayKeyValues( values: [state.validityEnd], } : undefined, + { key: KnownValueKey.StopState, values: [StopPlaceState.InOperation] }, ]); }