@@ -7,27 +7,33 @@ import test from './test-logger';
7
7
import { readJsonFile } from './utils' ;
8
8
import createScenario from './utils/scenario' ;
9
9
import { deleteScenario } from './utils/teardown-utils' ;
10
- import { postSimulation , sendTrainSchedules } from './utils/trainSchedule' ;
10
+ import { sendTrainSchedules } from './utils/trainSchedule' ;
11
11
12
12
test . describe ( 'Verify train schedule elements and filters' , ( ) => {
13
+ test . slow ( ) ;
13
14
let project : Project ;
14
15
let study : Study ;
15
16
let scenario : Scenario ;
16
17
let OSRDLanguage : string ;
17
18
const trainSchedulesJson = readJsonFile ( './tests/assets/trainSchedule/train_schedules.json' ) ;
19
+ // Constants for expected train counts
20
+ const TOTAL_TRAINS = 21 ;
21
+ const VALID_TRAINS = 17 ;
22
+ const INVALID_TRAINS = 4 ;
23
+ const HONORED_TRAINS = 12 ;
24
+ const NOT_HONORED_TRAINS = 5 ;
25
+ const VALID_AND_HONORED_TRAINS = 12 ;
26
+ const INVALID_AND_NOT_HONORED_TRAINS = 0 ;
18
27
19
28
test . beforeAll ( 'Set up the scenario and post train schedules before all tests' , async ( ) => {
20
29
( { project, study, scenario } = await createScenario ( ) ) ;
21
30
22
- // Post train schedule and initiate simulation
23
- const response = await sendTrainSchedules ( scenario . timetable_id , trainSchedulesJson ) ;
24
- await postSimulation ( response , scenario . infra_id ) ;
31
+ // Post train schedule
32
+ await sendTrainSchedules ( scenario . timetable_id , trainSchedulesJson ) ;
25
33
} ) ;
26
34
test . afterAll ( 'Delete the created scenario' , async ( ) => {
27
35
await deleteScenario ( project . id , study . id , scenario . name ) ;
28
36
} ) ;
29
-
30
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
31
37
test . beforeEach ( 'Navigate to scenario page before each test' , async ( { page } ) => {
32
38
const operationalStudiesPage = new OperationalStudiesPage ( page ) ;
33
39
const homePage = new HomePage ( page ) ;
@@ -42,33 +48,46 @@ test.describe('Verify train schedule elements and filters', () => {
42
48
43
49
/** *************** Test 1 **************** */
44
50
test ( 'Loading trains and verifying simulation result' , async ( { page } ) => {
45
- test . slow ( ) ;
46
-
47
51
const opTimetablePage = new OperationalStudiesTimetablePage ( page ) ;
48
52
49
53
// Verify train count, invalid train messages, and train simulation results
50
- await opTimetablePage . verifyTrainCount ( 21 ) ;
54
+ await opTimetablePage . verifyTrainCount ( TOTAL_TRAINS ) ;
51
55
await opTimetablePage . verifyInvalidTrainsMessageVisibility ( OSRDLanguage ) ;
52
56
await opTimetablePage . checkSelectedTimetableTrain ( ) ;
53
- await opTimetablePage . filterValidityAndVerifyTrainCount ( OSRDLanguage , 'Valid' , 17 ) ;
57
+ await opTimetablePage . filterValidityAndVerifyTrainCount ( OSRDLanguage , 'Valid' , VALID_TRAINS ) ;
54
58
await opTimetablePage . verifyEachTrainSimulation ( ) ;
55
59
} ) ;
56
60
57
61
/** *************** Test 2 **************** */
58
62
test ( 'Filtering imported trains' , async ( { page } ) => {
59
- test . slow ( ) ;
60
63
const opTimetablePage = new OperationalStudiesTimetablePage ( page ) ;
61
64
62
65
// Verify train count and apply different filters for validity and honored status
63
- await opTimetablePage . verifyTrainCount ( 21 ) ; // Verify total number of trains: 21
64
- await opTimetablePage . filterValidityAndVerifyTrainCount ( OSRDLanguage , 'Invalid' , 4 ) ; // Verify 4 invalid trains
65
- await opTimetablePage . filterValidityAndVerifyTrainCount ( OSRDLanguage , 'All' , 21 ) ; // Verify all 21 trains
66
- await opTimetablePage . filterHonoredAndVerifyTrainCount ( OSRDLanguage , 'Honored' , 12 ) ; // Verify 13 honored trains
67
- await opTimetablePage . filterValidityAndVerifyTrainCount ( OSRDLanguage , 'Valid' , 12 ) ; // Verify 13 valid (honored) trains
68
- await opTimetablePage . filterHonoredAndVerifyTrainCount ( OSRDLanguage , 'Not honored' , 5 ) ; // Verify 4 valid but not honored trains
69
- await opTimetablePage . filterValidityAndVerifyTrainCount ( OSRDLanguage , 'Invalid' , 0 ) ; /// Verify 0 invalid and honored trains
70
- await opTimetablePage . filterHonoredAndVerifyTrainCount ( OSRDLanguage , 'All' , 4 ) ; // Verify 4 invalid trains in the honored filter
71
- await opTimetablePage . filterValidityAndVerifyTrainCount ( OSRDLanguage , 'All' , 21 ) ; // Verify all 21 trains
66
+ await opTimetablePage . verifyTrainCount ( TOTAL_TRAINS ) ;
67
+ await opTimetablePage . filterValidityAndVerifyTrainCount (
68
+ OSRDLanguage ,
69
+ 'Invalid' ,
70
+ INVALID_TRAINS
71
+ ) ;
72
+ await opTimetablePage . filterValidityAndVerifyTrainCount ( OSRDLanguage , 'All' , TOTAL_TRAINS ) ;
73
+ await opTimetablePage . filterHonoredAndVerifyTrainCount ( OSRDLanguage , 'Honored' , HONORED_TRAINS ) ;
74
+ await opTimetablePage . filterValidityAndVerifyTrainCount (
75
+ OSRDLanguage ,
76
+ 'Valid' ,
77
+ VALID_AND_HONORED_TRAINS
78
+ ) ;
79
+ await opTimetablePage . filterHonoredAndVerifyTrainCount (
80
+ OSRDLanguage ,
81
+ 'Not honored' ,
82
+ NOT_HONORED_TRAINS
83
+ ) ;
84
+ await opTimetablePage . filterValidityAndVerifyTrainCount (
85
+ OSRDLanguage ,
86
+ 'Invalid' ,
87
+ INVALID_AND_NOT_HONORED_TRAINS
88
+ ) ;
89
+ await opTimetablePage . filterHonoredAndVerifyTrainCount ( OSRDLanguage , 'All' , INVALID_TRAINS ) ;
90
+ await opTimetablePage . filterValidityAndVerifyTrainCount ( OSRDLanguage , 'All' , TOTAL_TRAINS ) ;
72
91
73
92
// Verify train composition filters with predefined filter codes and expected counts
74
93
const compositionFilters = [
0 commit comments