[FOLIO-2727] 28 folio-snapshot tests fail consistently Created: 17/Aug/20  Updated: 25/Aug/20  Resolved: 25/Aug/20

Status: Closed
Project: FOLIO
Components: None
Affects versions: None
Fix versions: None

Type: Task Priority: TBD
Reporter: Zak Burke Assignee: Zak Burke
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original estimate: Not Specified

Issue links:
Blocks
blocks FOLIO-2723 Ensure next folio-snapshot-stable is ... Closed
Sprint: Core: F - Sprint 96, Core: F - Sprint 95
Story Points: 3
Development Team: Prokopovych

 Description   

28 end-to-end NightmareJS tests have been failing consistently for the past week or so.

245 passing (24m)
  28 failing

  1) Exercise users, inventory, checkout, checkin, settings ("exercise")
       Login > Update settings > Find user > Create inventory record > Create holdings record > Create item record > Checkout item > Confirm checkout > Checkin > Confirm checkin > Logout

         exercise loans
           should check out 1597376741102731430:
     Error: .wait() for #clickable-done timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  2) Exercise users, inventory, checkout, checkin, settings ("exercise")
       Login > Update settings > Find user > Create inventory record > Create holdings record > Create item record > Checkout item > Confirm checkout > Checkin > Confirm checkin > Logout

         exercise loans
           should change open-loan count:
     Error: Open loan count did not change.
      at /home/jenkins/workspace/Automation/folio-snapshot/platform-core/test/ui-testing/exercise.js:134:23
      at runMicrotasks ()
      at processTicksAndRejections (internal/process/task_queues.js:97:5)

  3) Exercise users, inventory, checkout, checkin, settings ("exercise")
       Login > Update settings > Find user > Create inventory record > Create holdings record > Create item record > Checkout item > Confirm checkout > Checkin > Confirm checkin > Logout

         exercise loans
           should find 1597376741102731430 in open loans:
     Error: .wait() for #list-loanshistory [role="gridcell"] timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  4) Exercise users, inventory, checkout, checkin, settings ("exercise")
       Login > Update settings > Find user > Create inventory record > Create holdings record > Create item record > Checkout item > Confirm checkout > Checkin > Confirm checkin > Logout

         exercise loans
           should change closed-loan count:
     Error: .wait() for #pane-userdetails timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  5) Exercise users, inventory, checkout, checkin, settings ("exercise")
       Login > Update settings > Find user > Create inventory record > Create holdings record > Create item record > Checkout item > Confirm checkout > Checkin > Confirm checkin > Logout

         exercise loans
           should confirm 1597376741102731430 in closed loans:
     Error: .wait() for #clickable-viewclosedloans timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  6) Checkout many items to a single user ("many-items")
       checkout items
         should checkout 21 items:
     Error: .wait() for #clickable-done timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  7) Tests to validate the loan renewals ("loan-renewal")
       Checkout item
         should check out 1597376741108451845 to user:
     Error: .wait() for #clickable-done timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  8) Tests to validate the loan renewals ("loan-renewal")
       Confirm checkout
         should find 1597376741108451845 in user's open loans:
     Error: .wait() for #list-loanshistory:not([data-total-count="0"]) timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  9) Tests to validate the loan renewals ("loan-renewal")
       Renew success
         should renew the loan and succeed:
     Error: .wait() for #list-loanshistory timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  10) Tests to validate the loan renewals ("loan-renewal")
       Renew failure
         should renew the loan second time and hit the renewal limit:
     Error: .wait() for #list-loanshistory timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  11) Tests to validate the loan renewals ("loan-renewal")
       Renew failure
         should fail the renewal:
     Error: .wait() timed out after 30000msec
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:10)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  12) Tests to validate the loan renewals ("loan-renewal")
       Renew failure
         Renewal should fail as renewal date falls outside of the date ranges:
     Error: .wait() timed out after 30000msec
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:10)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  13) New request ("new-request")
       Login > Open module "Requests" > Create new request > Logout
         exercise requests
           should check out newly created item:
     Error: .wait() for #clickable-done timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  14) New request ("new-request")
       Login > Open module "Requests" > Create new request > Logout
         exercise requests
           should add a new "Hold" request:
     Error: .wait() for select[name="requestType"] timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  15) New request ("new-request")
       Login > Open module "Requests" > Create new request > Logout
         exercise requests
           should find new request in requests list:
     Error: .wait() for #list-requests[data-total-count="1"] timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  16) New request ("new-request")
       Login > Open module "Requests" > Create new request > Logout
         restore settings
           should restore initial circulation rules:
     Error: .wait() for a[href="/settings/circulation"] timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  17) New request ("new-request")
       Login > Open module "Requests" > Create new request > Logout
         restore settings
           remove Overdue Fine Policy
             should delete the overdue fine policy:
     Error: .wait() for a[href="/settings/circulation"] timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  18) New request ("new-request")
       Login > Open module "Requests" > Create new request > Logout
         restore settings
           remove Lost Item Fee Policy
             should delete the lost item policy:
     Error: .wait() for a[href="/settings/circulation"] timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  19) New request ("new-request")
       Login > Open module "Requests" > Create new request > Logout
         restore settings
           remove Notice Policy
             should delete the notice policy:
     Error: .wait() for a[href="/settings/circulation"] timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  20) Module test: inventory:filters
       Login > Open module "Inventory" > Get hit counts > Click filters > Logout
         Should test instance language filters
           should filter results by language (Spanish):
     Error: .wait() for [role=listbox]:not([hidden]) [class^=multiSelect] [role=option]:nth-of-type(0) timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  21) Module test: tenant-settings:locations
       Login > Add new institution, campus, library, location > Try to delete institution > Delete location > Try to delete institution again > Logout

         should confirm creation of new location:
     Error: Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/jenkins/workspace/Automation/folio-snapshot/platform-core/node_modules/@folio/stripes-testing/test-module.js)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  22) Module test: tenant-settings:locations
       Login > Add new institution, campus, library, location > Try to delete institution > Delete location > Try to delete institution again > Logout

         should fail to delete institution "Bowdoin College 8094":
     Error: .wait() for #editList-institutions:not([data-total-count="0"]) timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  23) Module test: tenant-settings:locations
       Login > Add new institution, campus, library, location > Try to delete institution > Delete location > Try to delete institution again > Logout

         should fail to delete campus "Brunswick 9394":
     Error: .wait() for #editList-campuses:not([data-total-count="0"]) timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  24) Module test: tenant-settings:locations
       Login > Add new institution, campus, library, location > Try to delete institution > Delete location > Try to delete institution again > Logout

         should fail to delete library "Hawthorne-Longfellow 3808":
     Error: .wait() for #editList-libraries:not([data-total-count="0"]) timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  25) Module test: tenant-settings:locations
       Login > Add new institution, campus, library, location > Try to delete institution > Delete location > Try to delete institution again > Logout

         should delete the location "Bowdoin College Test Location 7175":
     Error: .wait() for #locations-list [role=row] [role=gridcell] timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  26) Module test: tenant-settings:locations
       Login > Add new institution, campus, library, location > Try to delete institution > Delete location > Try to delete institution again > Logout

         should delete the library "Hawthorne-Longfellow 3808":
     Error: .wait() for #editList-libraries:not([data-total-count="0"]) timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  27) Module test: tenant-settings:locations
       Login > Add new institution, campus, library, location > Try to delete institution > Delete location > Try to delete institution again > Logout

         should delete the campus "Brunswick 9394":
     Error: .wait() for #editList-campuses:not([data-total-count="0"]) timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)

  28) Module test: tenant-settings:locations
       Login > Add new institution, campus, library, location > Try to delete institution > Delete location > Try to delete institution again > Logout

         should delete the institution "Bowdoin College 8094":
     Error: .wait() for #editList-institutions:not([data-total-count="0"]) timed out after 30000msec
      at newDone (node_modules/nightmare/lib/actions.js:545:9)
      at Timeout._onTimeout (node_modules/nightmare/lib/actions.js:578:5)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)


 Comments   
Comment by Zak Burke [ 17/Aug/20 ]

I'm going to time-box this work at ~4 hours to see if we can get ourselves a new folio-snapshot-stable under the new dev.folio.org domain, but without getting too sucked in. If that time is insufficient, I'll just comment-out the failing tests.

CC: Anton Emelianov.

Comment by Zak Burke [ 20/Aug/20 ]

A bunch of little things accumulated here:

  • most of ui-circulation was converted from redux-form to final-form, which has been known to do (or seems to do) multiple initialization passes which can have the effect of wiping out data in form-fields
  • some button id attributes were changed, just for grins
  • moved handling for fixed-due-date schedules out of platform-core and into stripes-testing since all the other circ handlers are there too
  • finally converted the checkout-list to use array-reduce. TBH, it's amazing we made it this long without that one biting us.
  • the ui-inventory filters test failed because the list of languages changed as part of UIIN-829 Closed and no longer includes simple "Spanish", which was used in one of the tests.

The platform-core and ui-inventory PRs were linked automatically; the stripes-testing changes were carried out in PR #76.

Comment by Zak Burke [ 25/Aug/20 ]

I gave and disabled the ui-tenant-settings institutions/campuses/libraries/locations tests in PR #143 because they just don't succeed consistently when run as part of the whole suite even though they regularly succeed when run independently; ugh. Given the desire to resolve FOLIO-2723 Closed , it just didn't seem worthwhile to invest additional time in that now.

Comment by Zak Burke [ 25/Aug/20 ]

FYI, filed UITEN-110 Closed to restore the ui-tenant-settings institutions/campuses/libraries/locations tests.

Generated at Thu Feb 08 23:22:48 UTC 2024 using Jira 1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d.