ljharb / es-abstract

ECMAScript spec abstract operations.
MIT License
114 stars 30 forks source link

1.17.3 breaks firebase-functions-test testing package #88

Closed sesam closed 4 years ago

sesam commented 4 years ago

Our CI pipeline breaks when es-abstract goes above 1.17.2.

Workaround:

in packages.json, add

  "resolutions": {
    "es-abstract": ">=1.17.0 <=1.17.2",
  },
ljharb commented 4 years ago

Can you elaborate on what breaks exactly?

https://github.com/ljharb/es-abstract/compare/v1.17.2...v1.17.3 suggests that it might be 05a288305f01e6fb51e4e4126fd85c1f496c6691 which fixes a bug where it was not properly throwing. If I know exactly what's throwing (like, a stack trace) then that can be fixed as well.

sesam commented 4 years ago

Thank you! Yes, I intended to add more, and also hoped to see if anyone else would turn up and recognise this. Still, this may well be a case of us using some package in an unexpected way.

That throw in the end of the linked diff is familiar.

I've tried to find some change that causes, or prevents, the error: manually upgrading sub-dependencies to latest, upgrading some forgotten straddling "^0.x.y" to 0.(x+1), and eliminated duplication where yarn sometimes resolves to multiple versions of a package. And removing any added packages that turn out to no longer be needed. Maybe creating a test case isn't that complicated, but I'm already having troubles motivating work/home environments to let me spend time on this :-].

The different errors seem to be one occurrence of

 FAIL  test/myTriggers.spec.js
  ● Database triggers - myTriggers › onUpdate › should update assignment history if there was a reassignment
    TypeError: base intrinsic for Date.prototype.getTime exists, but the property is not available.
      115 |     let update = {
      116 |       updated_at: currentTime,
    > 117 |       action_id: admin.firestore.FieldValue.delete(),

followed by a bunch of

● Database triggers - myTriggers › onUpdate › should call update
    TypeError: Cannot read property 'delete' of undefined
      115 |     let update = {
      116 |       updated_at: currentTime,
    > 117 |       action_id: admin.firestore.FieldValue.delete(),
ljharb commented 4 years ago

Any chance there's a stack trace? Presumably it's something inside admin.firestore.FieldValue.delete (is that your code, or third party code)?

ljharb commented 4 years ago

@sesam ping; it'd be great to track this down, and get some more info - or a repro case. Anything I can reproduce, I can likely fix :-)

sesam commented 4 years ago

Hi, sorry, haven't had time to look into this any more. Our issue could also be with the testing library that breaks, or our glue code. I guess it might be logical to close this, and then reopen only if someone finds time to make a good small-ish repro test case.

ljharb commented 4 years ago

Sounds good.