tiny-invariant icon indicating copy to clipboard operation
tiny-invariant copied to clipboard

test: consuming this library in various scenarios

Open pkerschbaum opened this issue 2 years ago • 5 comments

Problem

tiny-invariant should compile and run in various setups. Be it Node-CJS, Node-ESM, TypeScript projects with various configurations, in Browsers, etc.
On this matter we had some troubles in the past (#144, #151) and we have a new issue (#162).
Iterating on this topic - package consumption in different scenarios - is difficult and error-prone at the moment.

Proposed Solution

Add tests which validate that tiny-invariant compiles and runs in different scenarios.

This PR implements a package.json script test:pkg-consumption which uses @pkerschbaum/pkg-consumption-test to run "package consumption scenarios".
Those scenarios are implemented in /test-pkg-consumption.

Four scenarios are implemented with this PR. Locally I added a fifth scenario for #162, and it successfully reproduces the issue.
In other words, when working on a fix for #162 one can just work against that failing scenario, while making sure that the others don't break.

Notes

  • A GitHub action is also added running the test, similar to the unit tests.

pkerschbaum avatar Nov 19 '22 19:11 pkerschbaum

This looks like a fantastic change. I am so sorry for not getting back to you sooner! I have been walking through a bit of burnout. I hope to look at this thoroughly in the new year

alexreardon avatar Dec 21 '22 01:12 alexreardon

No problem!
Yes lets get back to it next year 👍

pkerschbaum avatar Dec 23 '22 18:12 pkerschbaum

@pkerschbaum I love the goal and outcome of this change. Something I am thinking about is that this is a lot of code and complexity to add to this (little) package. I wonder if there is some way to pull what you have done out into another place (eg a package) which then tiny-invariant can use (reducing the complexity of this repo). What do you think?

alexreardon avatar Jan 17 '23 05:01 alexreardon

@alexreardon I was actually able to create a package @pkerschbaum/pkg-consumption-test which exposes a command to run the tests!
Now the changes in this repository tiny-invariant are only the "package consumption scenarios" (and the GitHub workflow) to run the tests :)

pkerschbaum avatar Jan 28 '23 16:01 pkerschbaum

I also updated the description of the PR.

pkerschbaum avatar Jan 28 '23 17:01 pkerschbaum