compiler icon indicating copy to clipboard operation
compiler copied to clipboard

chore: cover all tests

Open ematipico opened this issue 1 year ago • 6 comments

Changes

This PR adds snapshot testing to ALL tests.

I also changed a bit the way we create snapshot testing, I created an utility called MakeSnapshot inside test_utils.go, which accepts certain options to generate the snapshots.

Before this PR, the snapshots were stored inside a __snapshots__ folder, but I preferred to configure that value, and pass a specific folder for each test suite we're testing. I found dividing snapshots by test case to be nice.

Testing

CI should pass

Docs

N/A

ematipico avatar Jun 19 '24 15:06 ematipico

⚠️ No Changeset found

Latest commit: 0ce3b62867c54c21384ae93659f0cd11bcf4921a

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

changeset-bot[bot] avatar Jun 19 '24 15:06 changeset-bot[bot]

Do we need snapshot testing for all tests? Seems like these are rather short and can be asserted entirely with a single string. The features are also well-defined and isolated (and unlikely to have internal implementation change).

I think it's fine to leave it as is, and perhaps leave snapshots for larger file outputs only that's hard to assert and susceptible to internal implementation change.

bluwy avatar Jun 24 '24 12:06 bluwy

Do we need snapshot testing for all tests? Seems like these are rather short and can be asserted entirely with a single string. The features are also well-defined and isolated (and unlikely to have internal implementation change).

That's my question from me to you, as you have more knowledge than me, background-wise. I hope you can tell me which tests don't need a snapshot and why.

From what I can tell, ALL tests use a transformation step, which is the whole point of the snapshot.

ematipico avatar Jun 24 '24 12:06 ematipico

The printer tests are the ones that should be a snapshot. But from this PR it doesn't look like the old manual tests are removed. So I don't think I am following what is going on.

matthewp avatar Jul 01 '24 15:07 matthewp

The printer tests are the ones that should be a snapshot. But from this PR it doesn't look like the old manual tests are removed. So I don't think I am following what is going on.

  1. I'll reduce the amount of snapshots to the printing
  2. Regarding the old tests, I explained here why I found them useful: https://github.com/withastro/compiler/pull/995#issuecomment-2034492048

ematipico avatar Jul 01 '24 17:07 ematipico

Regarding (2), I think you're saying that you find the print infrastructure useful for creating new tests. But once you've created them, there's not value in keeping them around forever, is there? If the existing printer want{} tests are duplicates of the snapshot tests then I don't see what value we are getting from the snapshots at all. I would be fine with keeping the print test infrastructure around as a helper during development, but don't see the benefit of checking in 2 copies of a testing.

matthewp avatar Jul 02 '24 16:07 matthewp