Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
7d9e556
feat(gtfs): add initial CRUD for fare_products
josh-willis-arcadis Jan 28, 2025
e5e43a5
feat: add crud for rest of fares v2 tables
josh-willis-arcadis Jan 29, 2025
5d38fbb
Revert "feat: add crud for rest of fares v2 tables"
josh-willis-arcadis Jan 30, 2025
a9bedf7
add fare_media, fare_products fare_transfer_rule to sidebar to view data
josh-willis-arcadis Jan 30, 2025
6c88639
feat(fare_leg_rule): add table to editor
josh-willis-arcadis Feb 5, 2025
30cf528
feat(fare_leg_rules): add fare_leg_rules.txt data to editor
josh-willis-arcadis Feb 5, 2025
d6f5538
fix put/post
miles-grant-ibigroup Feb 6, 2025
2075474
clean up labels
miles-grant-ibigroup Feb 6, 2025
ba3e4a6
add text to faremedia dropdown
josh-willis-arcadis Feb 10, 2025
c35bb86
remove extra whitespace
josh-willis-arcadis Feb 10, 2025
17d7f94
add GTFS_FARE_MEDIA type
josh-willis-arcadis Feb 10, 2025
7aa1ce3
use correct text/value for fare_media type
josh-willis-arcadis Feb 10, 2025
5de97f5
add currency dropdown to fare_product
josh-willis-arcadis Feb 10, 2025
404900e
Revert "add GTFS_FARE_MEDIA type"
josh-willis-arcadis Feb 13, 2025
95c4dc6
add fare product input type
josh-willis-arcadis Apr 14, 2025
d09b416
display fare_product_ids in dropdown
josh-willis-arcadis Apr 24, 2025
d4465ac
start fare media dropdown
josh-willis-arcadis Apr 30, 2025
54dea04
add support for areas.txt
josh-willis-arcadis Jul 11, 2025
1e11700
add stop_areas to config file
josh-willis-arcadis Jul 11, 2025
d6dd259
fix area graphql call
josh-willis-arcadis Jul 14, 2025
850c833
load stop_areas data
josh-willis-arcadis Jul 15, 2025
76081ba
fix type issue
josh-willis-arcadis Jul 15, 2025
c64a033
add gtfs_area input type
josh-willis-arcadis Jul 24, 2025
0042661
start table select component
josh-willis-arcadis Jul 28, 2025
1eefea5
initial support for stop_area_ids on stop entities
josh-willis-arcadis Aug 7, 2025
84583ce
edit and delete stop_area_ids with new component
josh-willis-arcadis Aug 14, 2025
3d20a9a
use correct separator symbol
josh-willis-arcadis Aug 14, 2025
92a398b
clean up label and remove stops usage
josh-willis-arcadis Aug 14, 2025
9cd1bd9
add networks.txt to config file
josh-willis-arcadis Aug 22, 2025
af1296d
add support for networks.txt
josh-willis-arcadis Oct 7, 2025
6ea5047
reuse stop areas selector for route network ids
josh-willis-arcadis Oct 8, 2025
0da84e0
start handling conditionally forbidden network_id field
josh-willis-arcadis Oct 14, 2025
255ed16
enforce conditionally forbidden rules on route_networks and networks
josh-willis-arcadis Dec 4, 2025
46edaf4
support timeframes.txt
josh-willis-arcadis Dec 4, 2025
42380d0
add todo comment about start_time and end_time
josh-willis-arcadis Dec 4, 2025
6f7c5dc
use correct table id
josh-willis-arcadis Dec 16, 2025
9d29631
Merge branch 'dev' into fares-v2
josh-willis-arcadis Jan 8, 2026
d3387e4
remove graphql limit on fare_rules
josh-willis-arcadis Jan 13, 2026
372273e
add first e2e test
josh-willis-arcadis Jan 13, 2026
be329cc
validate records with same fare_product_ids
josh-willis-arcadis Jan 14, 2026
518286b
new e2e test
josh-willis-arcadis Jan 15, 2026
95e71aa
support rider_categories.txt and fare_leg_join_rules.txt
josh-willis-arcadis Jan 20, 2026
74ed692
add flow fixmes for now
josh-willis-arcadis Jan 21, 2026
c8fc875
make e2e tests run
josh-willis-arcadis Jan 21, 2026
04add6b
updated id syntax
josh-willis-arcadis Jan 29, 2026
a5d1b4a
add new fares v2 e2e tests
josh-willis-arcadis Feb 12, 2026
61beb63
updated dockerfile with fares v2 server branch
josh-willis-arcadis Feb 12, 2026
c675001
add type for fare product
josh-willis-arcadis Feb 17, 2026
f8917c9
make ci run
josh-willis-arcadis Feb 20, 2026
301df2a
make ci run
josh-willis-arcadis Feb 23, 2026
b0a097e
make ci run
josh-willis-arcadis Feb 23, 2026
3d38fa8
Merge branch 'fares-v2' into fares-v2-e2e
josh-willis-arcadis Feb 26, 2026
342de52
add rider catergory to fare product tab
josh-willis-arcadis Mar 4, 2026
9b5ce07
clean up todos and add new gtfs types
josh-willis-arcadis Mar 4, 2026
f165054
ci: Attempt to fix DT-server startup
binh-dam-ibigroup Mar 5, 2026
8ee2ba4
Merge branch 'dev' into fares-v2
josh-willis-arcadis Mar 12, 2026
1398221
Merge branch 'fares-v2' into fares-v2-e2e
josh-willis-arcadis Mar 12, 2026
6c008a4
Merge remote-tracking branch 'origin/try-fix-e2e-tests' into fares-v2…
josh-willis-arcadis Mar 12, 2026
eb0e33b
revert unnecessary change
josh-willis-arcadis Mar 12, 2026
d10d59a
remove fares v2 server branch for docker server
josh-willis-arcadis Mar 16, 2026
ac74e3b
undo if statement in pull request workflow
josh-willis-arcadis Mar 16, 2026
e1ffdff
add better text for transfer rules options
josh-willis-arcadis Mar 17, 2026
3a4ed4f
more transfer rule help content
josh-willis-arcadis Mar 17, 2026
1c225c5
add todo for route network ui component
josh-willis-arcadis Mar 17, 2026
f964adb
Merge branch 'faresv2' into fares-v2-e2e
josh-willis-arcadis Mar 18, 2026
0d42e68
Merge pull request #1048 from ibi-group/fares-v2-e2e
josh-willis-arcadis Mar 18, 2026
c4bf08d
show correct value in table select dropdown
josh-willis-arcadis Mar 20, 2026
362c4c0
remove comments
josh-willis-arcadis Mar 20, 2026
b472058
remove console log
josh-willis-arcadis Mar 20, 2026
e446ed1
remove unneeded component
josh-willis-arcadis Mar 20, 2026
cdc4f15
better readable string for fares v2 table select dropdown
josh-willis-arcadis Mar 23, 2026
f2a28f1
add column width key for better editor UI
josh-willis-arcadis Mar 23, 2026
87562f4
remove console logs
josh-willis-arcadis Mar 25, 2026
83517ea
make stop area selector generic
miles-grant-ibigroup Mar 25, 2026
0f86d2e
disable route networks if network id is populated
josh-willis-arcadis Mar 25, 2026
8599254
use correct type and disable route network
josh-willis-arcadis Mar 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion __tests__/e2e/server/launch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
java -jar otp-1.4.0-shaded.jar --server --autoScan --basePath /tmp/otp --insecure --router default &

# Start the second process
java -jar datatools-server-3.8.1-SNAPSHOT.jar /config/env.yml /config/server.yml &
java -XX:-UseContainerSupport -jar datatools-server-3.8.1-SNAPSHOT.jar /config/env.yml /config/server.yml &

# Wait for any process to exit
wait -n
Expand Down
161 changes: 161 additions & 0 deletions __tests__/end-to-end.js
Original file line number Diff line number Diff line change
Expand Up @@ -803,6 +803,51 @@ async function elementType (elementHandle: any, selector: string, text: string)
await selectedElement.type(text)
}

/**
* A helper function to create a new fare media by filling out the fare media
* form and saving it. This function assumes that the fare media sidebar form is
* open and ready to be filled out.
*/
async function createNewFareMedia () {
await waitForAndClick('[data-test-id="create-first-faremedia-button"]')

// fare_media_id
await type(
'[data-test-id="faremedia-fare_media_id-input-container"] input',
'1'
)

// name
await type(
'[data-test-id="faremedia-fare_media_name-input-container"] input',
'Test Fare Media'
)

// type
await page.select(
'[data-test-id="faremedia-fare_media_type-input-container"] select',
'1' // physical paper ticket
)

// save
await click('[data-test-id="save-entity-button"]')
await wait(2000, 'for save to happen')

// reload to make sure stuff was saved
await page.reload({ waitUntil: 'networkidle0' })

// wait for fare media sidebar form to appear
await waitForSelector(
'[data-test-id="faremedia-fare_media_id-input-container"]'
)

// verify data was saved and retrieved from server
await expectSelectorToContainHtml(
'[data-test-id="faremedia-fare_media_id-input-container"]',
'1'
)
}

// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
// Start of test suite
Expand Down Expand Up @@ -2424,6 +2469,122 @@ describe('end-to-end', () => {
}, defaultTestTimeout, 'should create fare')
})

// fares v2 tests
describe('fares v2', () => {
makeEditorEntityTest('should create fare media', async () => {
// open fares v2 sidebar
await click('[data-test-id="editor-fareproduct-nav-button"]')

// click dropdown to select fare_media
await reactSelectOption(
'[data-test-id="virtualized-entity-select-fareproduct"]',
'faremedia',
1,
true
)

// wait for fare media sidebar form to appear and click create button
await createNewFareMedia()
}, defaultTestTimeout)
makeEditorEntityTest('should update fare media data', async () => {
// update fare media name by appending to end
await appendText(
'[data-test-id="faremedia-fare_media_name-input-container"] input',
' updated'
)

// save
await click('[data-test-id="save-entity-button"]')
await wait(2000, 'for save to happen')

// reload to make sure stuff was saved
await page.reload({ waitUntil: 'networkidle0' })

// wait for fare media sidebar form to appear
await waitForSelector(
'[data-test-id="faremedia-fare_media_name-input-container"] input'
)

// verify data was saved and retrieved from server
await expectSelectorToContainHtml(
'[data-test-id="faremedia-fare_media_name-input-container"]',
'Test Fare Media updated'
)
}, defaultTestTimeout, 'should create fare media')
makeEditorEntityTest('should delete fare media', async () => {
// delete the fare media
await click('[data-test-id="delete-faremedia-button"]')
await waitForAndClick('[data-test-id="modal-confirm-ok-button"]')
await wait(2000, 'for delete to happen')

// verify that fare media to delete is no longer listed
await expectSelectorToContainHtml(
'[data-test-id="create-first-faremedia-button"]',
'Create first media'
)
}, defaultTestTimeout, 'should create fare media')
makeEditorEntityTest('should create fare product with fare media', async () => {
await createNewFareMedia()

// click dropdown to select fare_product
await reactSelectOption(
'[data-test-id="virtualized-entity-select-faremedia"]',
'fareproduct',
1,
true
)

// wait for fare product sidebar form to appear and click create button
await waitForAndClick('[data-test-id="create-first-fareproduct-button"]')

// fill out fare product form
await type(
'[data-test-id="fareproduct-fare_product_id-input-container"] input',
'test-fare-product-id'
)
await type(
'[data-test-id="fareproduct-fare_product_name-input-container"] input',
'Test Fare Product'
)
// select the previously created fare media
await reactSelectOption(
'[data-test-id="fareproduct-fare_media_id-input-container"]',
'Test Fare Media (1)',
1
)

// amount
await type(
'[data-test-id="fareproduct-amount-input-container"] input',
'2.50'
)

// currency
await page.select(
'[data-test-id="fareproduct-currency-input-container"] select',
'USD'
)

// save
await click('[data-test-id="save-entity-button"]')
await wait(2000, 'for save to happen')

// reload to make sure stuff was saved
await page.reload({ waitUntil: 'networkidle0' })

// wait for fare product sidebar form to appear
await waitForSelector(
'[data-test-id="fareproduct-fare_product_id-input-container"]'
)

// verify data was saved and retrieved from server
await expectSelectorToContainHtml(
'[data-test-id="fareproduct-fare_product_id-input-container"]',
'test-fare-product-id'
)
}, defaultTestTimeout, 'should create fare media')
})

// ---------------------------------------------------------------------------
// Pattern tests
// ---------------------------------------------------------------------------
Expand Down
Loading
Loading