[FOLIO-1547] Upgrade platform-core to stripes 1.0 Created: 03/Oct/18 Updated: 12/Nov/18 Resolved: 09/Oct/18 |
|
| Status: | Closed |
| Project: | FOLIO |
| Components: | None |
| Affects versions: | None |
| Fix versions: | None |
| Type: | Task | Priority: | P2 |
| Reporter: | Matthew Jones | Assignee: | Matthew Jones |
| Resolution: | Done | Votes: | 0 |
| Labels: | ci, sprint48, stripes-force | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original estimate: | Not Specified | ||
| Issue links: |
|
||||||||||||||||
| Sprint: | stripes force Sprint 48 | ||||||||||||||||
| Description |
| Comments |
| Comment by Matthew Jones [ 03/Oct/18 ] |
|
|
| Comment by Matthew Jones [ 05/Oct/18 ] |
|
PR is up for platform-core: When running the tests for platform-core pointing to okapi http://folio-snapshot-406.aws.indexdata.com:9130, all tests pass except one: 130 passing (5m)
1 failing
1) Module test: checkout:error_messages.
Open app > Trigger error messages > Logout
should show error when entering wrong patron ID:
Error: .wait() timed out after 30000msec
at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:453:10)
If I run this test with --show, it will consistently pass: $ stripes test nightmare stripes.config.js --local --run checkout:error_messages --show
Using URL http://localhost:3000
Starting Nightmare tests...
Host: http://localhost:3000
Module test: checkout:error_messages.
Open app > Trigger error messages > Logout
Test suite @folio/checkout:1.3.0
Live module @folio/checkout:1.3.0 (http://localhost:3000)
✓ should open app and find module version tag (235ms)
✓ should show error when scanning item before patron card (20043ms)
✓ should show error when entering wrong patron ID (20547ms)
✓ should set patron scan ID to "User" (1835ms)
✓ should find existing patron (1855ms)
✓ should show error when entering wrong item ID (1351ms)
6 passing (50s)
Otherwise it will fail: $ yarn stripes test nightmare stripes.config.js --local --run checkout:error_messages
yarn run v1.9.4
$ stripes test nightmare stripes.config.js --local --run checkout:error_messages
Using URL http://localhost:3000
Starting Nightmare tests...
Host: http://localhost:3000
Module test: checkout:error_messages.
Open app > Trigger error messages > Logout
Test suite @folio/checkout:1.3.0
Live module @folio/checkout:1.3.0 (http://localhost:3000)
✓ should open app and find module version tag (180ms)
✓ should show error when scanning item before patron card (63ms)
1) should show error when entering wrong patron ID
✓ should set patron scan ID to "User" (1840ms)
✓ should find existing patron (1825ms)
✓ should show error when entering wrong item ID (1358ms)
5 passing (39s)
1 failing
1) Module test: checkout:error_messages.
Open app > Trigger error messages > Logout
should show error when entering wrong patron ID:
Error: .wait() timed out after 30000msec
at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:453:10)
Some tests failed or something went wrong while attempting to run the tests.
1
exiting process with failure(1)
Interestingly, this test is one of those that passed during last night's failed regression. |
| Comment by Matthew Jones [ 05/Oct/18 ] |
|
FWIW, the test in question consistently passes if I comment out the preceding test. Also, the test has failed for me a couple times for me now with `--show` enabled. Looking at the input during a failed run shows the "wrong-patron-id" text destined for #input-patron-identifier is getting applied to #input-item-barcode instead, resulting in a combined value of "item-before-patronwrong-patron-id" (where "item-before-patron" comes from the prior test). |
| Comment by Zak Burke [ 08/Oct/18 ] |
|
The ui-checkout tests should be resolved by https://github.com/folio-org/ui-checkout/pull/191. The issue is that two tests in a row check for an error message. If the message is not cleared between rounds, test-B will find the error message pertaining to test-A and fail as a result. |
| Comment by Jakub Skoczen [ 09/Oct/18 ] |
|
Jeffrey Cherewaty John Malconian Matthew Jones Zak Burke Guys, my understanding after talking to Zak is that many of the problems present on our current CI environments (folio-snapshot/snapshot-stable) and problems with the integration tests themselves are related to the stripes1.0 transition that "leaked" out to those envs and most of those problems are resolved on this branch. Is that also your assessment? If so I have the following questions: 1. What is the ETA for completing this work, merging it to master and subsequently using the updated platform to build snapshot/snapshot-stable/testing? 2. Is there something we can do to revert snapshot/snapshot stable to pre transition packages and pin them until this work here is complete? Would it help with the current issues? Finally, is it worth spending time on? Thanks. |
| Comment by Matthew Jones [ 09/Oct/18 ] |
|
Jakub Skoczen I agree with your assessment. 1) Platform-core will be merged today. Then we can merge the updated dependencies into the snapshot branch. There are some open questions around preexisting yarn warnings in the PR, that I think we can address in down the road in stripes v1.1. 2) To revert/maintain snapshot in a state prior to stripes v1, we could start by limiting all platform dependencies to less than the versions listed in the table in this ticket. For example, "@folio/users": "<2.17.0". A couple dependencies were bumped twice, so we'd have to check the history and account for the version prior. Given we can merge today, and all the tests in the PR should now be passing (with Zak's fix, thank you Zak Burke!), I don't think pinning will be necessary. |
| Comment by Jeffrey Cherewaty [ 09/Oct/18 ] |
|
I agree that pinning won't be necessary. A follow-up question for discussion in the coming weeks: should there be separate CI environments for platform-core and platform-complete? I'm thinking yes - platform-core has been ready to go for a few days, and we've been coordinating with multiple teams to get platform-complete ready. |
| Comment by John Malconian [ 09/Oct/18 ] |
|
I think this ties into a larger discussion about the purpose of 'folio-snapshot', 'folio-snapshot-stable', and 'folio-testing'. As I see it: 1. The work being done here in platform-core and platform-complete where we actually have the platforms configured with properly released artifacts and properly curated dependencies (e.g NOT ">=0.0.0") is the seed of the Q4 release and should be maintained as such. This is the NEW 'folio-snapshot' in that it is a continuously updated and curated "snapshot" of the next release. Call it 'folio-q4-snapshot' if you will. folio-q4-snapshot's primary purpose is to provide an instance for formal UA testing, fine-tune bugs, and provide stakeholders and the larger user community with a picture of the current state of the release. The UI integration tests (among other tests) are useful here as a regular quality gate to a stable platform. 2. There are currently use cases where developers need to provide or receive near instant feedback on the progress of uncompleted features - this should be the primary function of 'folio-testing' which consists of a FOLIO instances comprised of the latest pre-release artifacts ("tip of master"). Stability and availability need not apply here nor should we be chasing our tails about failed integration tests. |
| Comment by Jeffrey Cherewaty [ 09/Oct/18 ] |
|
Done with https://github.com/folio-org/platform-core/pull/84 |
| Comment by Jakub Skoczen [ 10/Oct/18 ] |
|
John Malconian I think what you are describing is a reformulation of what "snapshot" environments are and I am unclear if this has already happened or if this is something you started working on? How is this related to what is proposed on
|
| Comment by Jakub Skoczen [ 10/Oct/18 ] |
|
Jeffrey Cherewaty Matthew Jones guys, is there a particular reason why this issue resolved but unassigned? I'd like to understand who 'owns' this work item. |
| Comment by Matthew Jones [ 10/Oct/18 ] |
|
Jakub Skoczen, No. I think that was an oversight. This ticket was actively worked on by Jeffrey Cherewaty, John Coburn, and myself at the same time. I worked on the platform-core aspects and final testing/validation, so I've assigned it to myself. However, Jeffrey Cherewaty and John Coburn take the credit for the hard work in updating the apps to make this happen. |