jscutlery/devkit

cypress-harness ist not compatible to cypress 12

dbk-anick opened this issue · 2 comments

I updated your repositiory in package.json to cypress 12.1.0 and run

nx run cypress-harness-wide:component-test

I got the following result:

getHarness
1) should set date using material datepicker harness
√ should set date using imperative approach (118ms)
1 passing (5s)
1 failing

  1. getHarness
    should set date using material datepicker harness:
    CypressError: Timed out retrying after 4000ms: cy.invoke() errored because the property: next does not exist on your subject.
    cy.invoke() waited for the specified property next to exist, but it never did.
    If you do not expect the property next to exist, then add an assertion such as:
    cy.wrap({ foo: 'bar' }).its('quux').should('not.exist')
    https://on.cypress.io/invoke
    at (http://localhost:8080/__cypress/runner/cypress_runner.js:139411:80)
    at (http://localhost:8080/__cypress/runner/cypress_runner.js:139478:7)
    at Object.subjectFn (http://localhost:8080/__cypress/runner/cypress_runner.js:154943:16)
    at $Cy.verifyUpcomingAssertions (http://localhost:8080/__cypress/runner/cypress_runner.js:134220:31)
    at onRetry (http://localhost:8080/__cypress/runner/cypress_runner.js:154935:15)
    at tryCatcher (http://localhost:8080/__cypress/runner/cypress_runner.js:11327:23)
    at Promise.attempt.Promise.try (http://localhost:8080/__cypress/runner/cypress_runner.js:8601:29)
    at whenStable (http://localhost:8080/__cypress/runner/cypress_runner.js:151606:65)
    at (http://localhost:8080/__cypress/runner/cypress_runner.js:151014:14)
    at tryCatcher (http://localhost:8080/__cypress/runner/cypress_runner.js:11327:23)
    at Promise._settlePromiseFromHandler (http://localhost:8080/__cypress/runner/cypress_runner.js:9262:31)
    at Promise._settlePromise (http://localhost:8080/__cypress/runner/cypress_runner.js:9319:18)
    at Promise._settlePromise0 (http://localhost:8080/__cypress/runner/cypress_runner.js:9364:10)
    at Promise._settlePromises (http://localhost:8080/__cypress/runner/cypress_runner.js:9444:18)
    at Promise._fulfill (http://localhost:8080/__cypress/runner/cypress_runner.js:9388:18)
    at (http://localhost:8080/__cypress/runner/cypress_runner.js:11002:46)
    From Your Spec Code:
    at Proxy. (http://localhost:8080/__cypress/src/290.js:180:28)
    at Context. (webpack://angular/./src/date-picker-harness.cy.ts:45:33)
    at _ZoneDelegate.invoke (http://localhost:8080/__cypress/src/polyfills.js:7586:158)
    at ProxyZoneSpec.onInvoke (webpack://angular/../../node_modules/zone.js/fesm2015/zone-testing.js:287:38)
    at _ZoneDelegate.invoke (http://localhost:8080/__cypress/src/polyfills.js:7586:46)
    at Zone.run (http://localhost:8080/__cypress/src/polyfills.js:7372:35)
    at Context. (webpack://angular/../../node_modules/zone.js/fesm2015/zone-testing.js:1046:32)
    at runnable.fn (http://localhost:8080/__cypress/runner/cypress_runner.js:156580:19)

(Results)
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Tests: 2 │
│ Passing: 1 │
│ Failing: 1 │
│ Pending: 0 │
│ Skipped: 0 │
│ Screenshots: 1 │
│ Video: true │
│ Duration: 4 seconds │
│ Spec Ran: date-picker-harness.cy.ts │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
(Screenshots)

  • D:\development\angular\devkit\dist\cypress\tests\cypress-harness-wide\screenshot (1280x720)
    s\date-picker-harness.cy.ts\getHarness -- should set date using material datepic
    ker harness (failed).png
    (Video)
  • Started processing: Compressing to 32 CRF
  • Finished processing: D:\development\angular\devkit\dist\cypress\tests\cypress-ha (3 seconds)
    rness-wide\videos\date-picker-harness.cy.ts.mp4
    ────────────────────────────────────────────────────────────────────────────────────────────────────

Running: get-all-harnesses.cy.ts (2 of 3)

getAllHarnesses
√ should set input value using material input harness (176ms)
1 passing (229ms)
(Results)
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Tests: 1 │
│ Passing: 1 │
│ Failing: 0 │
│ Pending: 0 │
│ Skipped: 0 │
│ Screenshots: 0 │
│ Video: true │
│ Duration: 0 seconds │
│ Spec Ran: get-all-harnesses.cy.ts │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
(Video)

  • Started processing: Compressing to 32 CRF
  • Finished processing: D:\development\angular\devkit\dist\cypress\tests\cypress-ha (0 seconds)
    rness-wide\videos\get-all-harnesses.cy.ts.mp4
    ────────────────────────────────────────────────────────────────────────────────────────────────────

Running: get-root-harness.cy.ts (3 of 3)

getRootHarness
1) should setInputValue
0 passing (4s)
1 failing

  1. getRootHarness
    should setInputValue:
    Timed out retrying after 4000ms

    • expected - actual
      -{ __zone_symbol__state: true, __zone_symbol__value: 'test' }
      +'test'

    at Context. (webpack://angular/./src/get-root-harness.cy.ts:32:57)
    at _ZoneDelegate.invoke (http://localhost:8080/__cypress/src/polyfills.js:7586:158)
    at ProxyZoneSpec.onInvoke (webpack://angular/../../node_modules/zone.js/fesm2015/zone-testing.js:287:38)
    at _ZoneDelegate.invoke (http://localhost:8080/__cypress/src/polyfills.js:7586:46)
    at Zone.run (http://localhost:8080/__cypress/src/polyfills.js:7372:35)
    at Context. (webpack://angular/../../node_modules/zone.js/fesm2015/zone-testing.js:1046:32)
    at runnable.fn (http://localhost:8080/__cypress/runner/cypress_runner.js:156580:19)
    at callFn (http://localhost:8080/__cypress/runner/cypress_runner.js:107972:21)

(Results)
┌────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Tests: 1 │
│ Passing: 0 │
│ Failing: 1 │
│ Pending: 0 │
│ Skipped: 0 │
│ Screenshots: 1 │
│ Video: true │
│ Duration: 4 seconds │
│ Spec Ran: get-root-harness.cy.ts │
└────────────────────────────────────────────────────────────────────────────────────────────────┘
(Screenshots)

  • D:\development\angular\devkit\dist\cypress\tests\cypress-harness-wide\screenshot (1280x720)
    s\get-root-harness.cy.ts\getRootHarness -- should setInputValue (failed).png
    (Video)
  • Started processing: Compressing to 32 CRF
  • Finished processing: D:\development\angular\devkit\dist\cypress\tests\cypress-ha (1 second)
    rness-wide\videos\get-root-harness.cy.ts.mp4
    ====================================================================================================
    (Run Finished)
    Spec Tests Passing Failing Pending Skipped
    ┌────────────────────────────────────────────────────────────────────────────────────────────────┐
    │ ✖ date-picker-harness.cy.ts 00:04 2 1 1 - - │
    ├────────────────────────────────────────────────────────────────────────────────────────────────┤
    │ ✔ get-all-harnesses.cy.ts 219ms 1 1 - - - │
    ├────────────────────────────────────────────────────────────────────────────────────────────────┤
    │ ✖ get-root-harness.cy.ts 00:04 1 - 1 - - │
    └────────────────────────────────────────────────────────────────────────────────────────────────┘
    ✖ 2 of 3 failed (67%) 00:09 4 2 2 - -

—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

NX Ran target component-test for project cypress-harness-wide (2m)

×    1/1 failed
√    0/1 succeeded [0 read from cache]

Hi @dbk-anick! I noticed the problem too in fact... and things went a bit busy on our side.
I'll dive into this as soon as I can but if anyone wants to give it a shot, they are more than welcome!
Thx

Hey @dbk-anick, sorry for the delay but there was in fact an issue with invoke() not supporting methods that return promises.
We finally fixed it here in @jscutlery/cypress-harness@0.4.3
You can find more info here: 06e6c31