Files
Jiwon ChoiandGitHub 741f8300b6 next-codemod: add empty pnpm-workspace.yaml to test fixtures to bypass PNPM workspace checks (#71726)
### Why?

Since dep installation within next-codemod runs `pnpm install` on the
Next.js repo, it installs in the workspace root scope during testing. We
could add a layer for testing like adding a flag `--no-workspace`, but
it will reduce confidence between the actual running and testing.
Therefore added an empty `pnpm-workspace.yaml` file to each fixture.

### How?

By doing this, both installation and testing will have same environment
of running, `pnpm install` only. To prevent created `pnpm-lockfile` to
be shipped, gitignored it.

This way, we keep things simple and make sure tests match real-world use
better. The empty `pnpm-workspace.yaml` files make `pnpm` treat each
fixture separately, which is closer to how it'll work for users.
2024-10-23 14:55:20 +00:00

19 lines
552 B
Bash
Executable File

#!/usr/bin/env bash
# Simple test runner for upgrade fixtures.
# For manual verification only (check the README.md) in the fixtures
# for the expected behavior.
# Usage:
# - cwd must be ~/packages/next-codemod
# - `pnpm test:upgrade-fixture <fixture-name> <...next-codemod-args>`
NEXT_CODEMOD_BIN=$(pwd)/bin/next-codemod.js
cd "$1" || exit 1
# We're only interested in the changes the upgrade command does.
git add -A .
rm -rf node_modules
pnpm install
node "$NEXT_CODEMOD_BIN" upgrade "${@:2}"
git --no-pager diff .
git restore .
git reset HEAD -- .