Skip to content

Commit

Permalink
chore(test-helpers): moving snapshot serializers to typescript (#3639)
Browse files Browse the repository at this point in the history
  • Loading branch information
amorscher committed Apr 12, 2023
1 parent d407aaf commit a971ca8
Show file tree
Hide file tree
Showing 35 changed files with 184 additions and 138 deletions.
5 changes: 2 additions & 3 deletions integration/__tests__/lerna-publish-build-metadata.spec.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import { cliRunner, cloneFixtureFactory, showCommit } from "@lerna/test-helpers";
import { changelogSerializer, cliRunner, cloneFixtureFactory, showCommit } from "@lerna/test-helpers";
import path from "path";

const cloneFixture = cloneFixtureFactory(path.resolve(__dirname, "../commands/publish/__tests__"));

// stabilize changelog commit SHA and datestamp
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-changelog"));
expect.addSnapshotSerializer(changelogSerializer);

const env = {
// never actually upload when calling `npm publish`
Expand Down
4 changes: 2 additions & 2 deletions integration/__tests__/lerna-publish-canary.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {
changelogSerializer,
cliRunner,
cloneFixtureFactory,
commitChangeToPackage,
Expand All @@ -10,8 +11,7 @@ import path from "path";
const cloneFixture = cloneFixtureFactory(path.resolve(__dirname, "../../libs/commands/publish"));

// stabilize changelog commit SHA and datestamp
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-changelog"));
expect.addSnapshotSerializer(changelogSerializer);

const env = {
// never actually upload when calling `npm publish`
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import { cliRunner, cloneFixtureFactory, commitChangeToPackage, gitTag } from "@lerna/test-helpers";
import {
changelogSerializer,
cliRunner,
cloneFixtureFactory,
commitChangeToPackage,
gitTag,
} from "@lerna/test-helpers";
import fs from "fs-extra";
import globby from "globby";
import os from "os";
Expand All @@ -7,8 +13,7 @@ import path from "path";
const cloneFixture = cloneFixtureFactory(path.resolve(__dirname, "../../libs/commands/publish"));

// stabilize changelog commit SHA and datestamp
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-changelog"));
expect.addSnapshotSerializer(changelogSerializer);

const env = {
// never actually upload when calling `npm publish`
Expand Down
10 changes: 7 additions & 3 deletions integration/__tests__/lerna-publish-conventional-fixed.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
import { cliRunner, cloneFixtureFactory, commitChangeToPackage } from "@lerna/test-helpers";
import {
changelogSerializer,
cliRunner,
cloneFixtureFactory,
commitChangeToPackage,
} from "@lerna/test-helpers";
import fs from "fs-extra";
import globby from "globby";
import os from "os";
Expand All @@ -7,8 +12,7 @@ import path from "path";
const cloneFixture = cloneFixtureFactory(path.resolve(__dirname, "../../libs/commands/publish"));

// stabilize changelog commit SHA and datestamp
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-changelog"));
expect.addSnapshotSerializer(changelogSerializer);

const env = {
// never actually upload when calling `npm publish`
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
import { cliRunner, cloneFixtureFactory, commitChangeToPackage, gitTag } from "@lerna/test-helpers";
import {
changelogSerializer,
cliRunner,
cloneFixtureFactory,
commitChangeToPackage,
gitTag,
} from "@lerna/test-helpers";
import fs from "fs-extra";
import globby from "globby";
import os from "os";
Expand All @@ -7,8 +13,7 @@ import path from "path";
const cloneFixture = cloneFixtureFactory(path.resolve(__dirname, "../../libs/commands/publish"));

// stabilize changelog commit SHA and datestamp
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-changelog"));
expect.addSnapshotSerializer(changelogSerializer);

const env = {
// never actually upload when calling `npm publish`
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
import { cliRunner, cloneFixtureFactory, commitChangeToPackage } from "@lerna/test-helpers";
import {
changelogSerializer,
cliRunner,
cloneFixtureFactory,
commitChangeToPackage,
} from "@lerna/test-helpers";
import fs from "fs-extra";
import globby from "globby";
import os from "os";
Expand All @@ -7,8 +12,7 @@ import path from "path";
const cloneFixture = cloneFixtureFactory(path.resolve(__dirname, "../../libs/commands/publish"));

// stabilize changelog commit SHA and datestamp
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-changelog"));
expect.addSnapshotSerializer(changelogSerializer);

const env = {
// never actually upload when calling `npm publish`
Expand Down
5 changes: 2 additions & 3 deletions integration/__tests__/lerna-publish-custom-tag.spec.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import { cliRunner, cloneFixtureFactory, gitTag } from "@lerna/test-helpers";
import { changelogSerializer, cliRunner, cloneFixtureFactory, gitTag } from "@lerna/test-helpers";
import path from "path";

const cloneFixture = cloneFixtureFactory(path.resolve(__dirname, "../../libs/commands/publish"));

// stabilize changelog commit SHA and datestamp
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-changelog"));
expect.addSnapshotSerializer(changelogSerializer);

const env = {
// never actually upload when calling `npm publish`
Expand Down
5 changes: 2 additions & 3 deletions integration/__tests__/lerna-publish-fixed.spec.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import { cliRunner, cloneFixtureFactory, showCommit } from "@lerna/test-helpers";
import { changelogSerializer, cliRunner, cloneFixtureFactory, showCommit } from "@lerna/test-helpers";
import path from "path";

const cloneFixture = cloneFixtureFactory(path.resolve(__dirname, "../../libs/commands/publish"));

// stabilize changelog commit SHA and datestamp
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-changelog"));
expect.addSnapshotSerializer(changelogSerializer);

const env = {
// never actually upload when calling `npm publish`
Expand Down
5 changes: 2 additions & 3 deletions integration/__tests__/lerna-publish-independent.spec.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import { cliRunner, cloneFixtureFactory, showCommit } from "@lerna/test-helpers";
import { changelogSerializer, cliRunner, cloneFixtureFactory, showCommit } from "@lerna/test-helpers";
import path from "path";

const cloneFixture = cloneFixtureFactory(path.resolve(__dirname, "../../libs/commands/publish"));

// stabilize changelog commit SHA and datestamp
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-changelog"));
expect.addSnapshotSerializer(changelogSerializer);

const env = {
// never actually upload when calling `npm publish`
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {
changelogSerializer,
cliRunner,
cloneFixtureFactory,
commitChangeToPackage,
Expand All @@ -10,8 +11,7 @@ import path from "path";
const cloneFixture = cloneFixtureFactory(path.resolve(__dirname, "../../libs/commands/publish"));

// stabilize changelog commit SHA and datestamp
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-changelog"));
expect.addSnapshotSerializer(changelogSerializer);

const env = {
// never actually upload when calling `npm publish`
Expand Down
11 changes: 8 additions & 3 deletions integration/__tests__/lerna-publish-skip-npm.spec.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
import { cliRunner, cloneFixtureFactory, commitChangeToPackage, gitTag } from "@lerna/test-helpers";
import {
changelogSerializer,
cliRunner,
cloneFixtureFactory,
commitChangeToPackage,
gitTag,
} from "@lerna/test-helpers";
import path from "path";

const cloneFixture = cloneFixtureFactory(path.resolve(__dirname, "../../libs/commands/publish"));

// stabilize changelog commit SHA and datestamp
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-changelog"));
expect.addSnapshotSerializer(changelogSerializer);

test("lerna publish --skip-npm aliases to lerna version immediately", async () => {
const { cwd } = await cloneFixture("normal", "feat: init repo");
Expand Down
4 changes: 2 additions & 2 deletions integration/__tests__/lerna-publish-transitive.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {
changelogSerializer,
cliRunner,
cloneFixtureFactory,
commitChangeToPackage,
Expand All @@ -10,8 +11,7 @@ import path from "path";
const cloneFixture = cloneFixtureFactory(path.resolve(__dirname, "../../libs/commands/publish"));

// stabilize changelog commit SHA and datestamp
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-changelog"));
expect.addSnapshotSerializer(changelogSerializer);

const env = {
// never actually upload when calling `npm publish`
Expand Down
5 changes: 2 additions & 3 deletions integration/__tests__/lerna-publish-validation.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { cliRunner, cloneFixtureFactory, gitAdd, gitCommit } from "@lerna/test-helpers";
import { changelogSerializer, cliRunner, cloneFixtureFactory, gitAdd, gitCommit } from "@lerna/test-helpers";
import execa from "execa";
import fs from "fs-extra";
import path from "path";
Expand All @@ -7,8 +7,7 @@ import tempy from "tempy";
const cloneFixture = cloneFixtureFactory(path.resolve(__dirname, "../../libs/commands/publish"));

// stabilize changelog commit SHA and datestamp
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-changelog"));
expect.addSnapshotSerializer(changelogSerializer);

const env = {
// never actually upload when calling `npm publish`
Expand Down
2 changes: 1 addition & 1 deletion integration/jest.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export default {
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json"],
coverageDirectory: "../coverage/integration",
setupFiles: ["../libs/test-helpers/src/lib/npm/set-npm-userconfig.js"],
snapshotSerializers: ["../libs/test-helpers/src/lib/serializers/serialize-placeholders"],
snapshotSerializers: ["../libs/test-helpers/src/lib/serializers/serialize-placeholders.ts"],
verbose: true,
// allow CLI integration tests to run for a while (300s)
testTimeout: 300e3,
Expand Down
11 changes: 8 additions & 3 deletions libs/commands/changed/src/lib/changed-command.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
import { output as _output, collectUpdates as _collectUpdates } from "@lerna/core";
import { initFixtureFactory, commandRunner, updateLernaConfig, loggingOutput } from "@lerna/test-helpers";
import {
initFixtureFactory,
commandRunner,
updateLernaConfig,
loggingOutput,
tempDirSerializer,
} from "@lerna/test-helpers";

const initFixture = initFixtureFactory(__dirname);

Expand All @@ -26,8 +32,7 @@ expect.addSnapshotSerializer({
});

// normalize temp directory paths in snapshots
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-tempdir"));
expect.addSnapshotSerializer(tempDirSerializer);

describe("ChangedCommand", () => {
let cwd;
Expand Down
13 changes: 10 additions & 3 deletions libs/commands/diff/src/lib/diff-command.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
import { getPackages } from "@lerna/core";
import { commandRunner, gitAdd, gitCommit, gitInit, gitTag, initFixtureFactory } from "@lerna/test-helpers";
import {
commandRunner,
gitAdd,
gitCommit,
gitInit,
gitSHASerializer,
gitTag,
initFixtureFactory,
} from "@lerna/test-helpers";
import execa from "execa";
import fs from "fs-extra";
import path from "path";
Expand All @@ -15,8 +23,7 @@ const initFixture = initFixtureFactory(__dirname);
const lernaDiff = commandRunner(require("../command"));

// stabilize commit SHA
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-git-sha"));
expect.addSnapshotSerializer(gitSHASerializer);

describe("DiffCommand", () => {
// overwrite spawn so we get piped stdout, not inherited
Expand Down
13 changes: 8 additions & 5 deletions libs/commands/list/src/lib/list-command.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { output as _output, collectUpdates as _collectUpdates } from "@lerna/core";
import { initFixtureFactory, commandRunner } from "@lerna/test-helpers";
import {
initFixtureFactory,
commandRunner,
tempDirSerializer,
windowsPathSerializer,
} from "@lerna/test-helpers";

const initFixture = initFixtureFactory(__dirname);

Expand All @@ -26,10 +31,8 @@ expect.addSnapshotSerializer({
});

// normalize temp directory paths in snapshots
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-windows-paths"));
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-tempdir"));
expect.addSnapshotSerializer(windowsPathSerializer);
expect.addSnapshotSerializer(tempDirSerializer);

describe("lerna ls", () => {
describe("in a basic repo", () => {
Expand Down
4 changes: 2 additions & 2 deletions libs/commands/publish/src/lib/publish-canary.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
commandRunner,
gitAdd,
gitCommit,
gitSHASerializer,
gitTag,
initFixtureFactory,
loggingOutput,
Expand Down Expand Up @@ -55,8 +56,7 @@ const writePkg = _writePkg as any;
const lernaPublish = commandRunner(require("../command"));

// stabilize commit SHA
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-git-sha"));
expect.addSnapshotSerializer(gitSHASerializer);

async function initTaggedFixture(fixtureName, tagVersionPrefix = "v") {
const cwd = await initFixture(fixtureName);
Expand Down
5 changes: 2 additions & 3 deletions libs/commands/version/src/lib/version-allow-branch.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { commandRunner, initFixtureFactory } from "@lerna/test-helpers";
import { commandRunner, gitSHASerializer, initFixtureFactory } from "@lerna/test-helpers";
import execa from "execa";
import path from "path";

Expand All @@ -24,8 +24,7 @@ const initFixture = initFixtureFactory(path.resolve(__dirname, "../../../publish
const lernaVersion = commandRunner(require("../command"));

// stabilize commit SHA
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-git-sha"));
expect.addSnapshotSerializer(gitSHASerializer);

describe("version --allow-branch", () => {
const changeBranch = (cwd, name) => execa("git", ["checkout", "-B", name], { cwd });
Expand Down
4 changes: 2 additions & 2 deletions libs/commands/version/src/lib/version-bump-prerelease.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { promptSelectOne as _promptSelectOne, promptTextInput as _promtTextInput } from "@lerna/core";
import {
changelogSerializer,
commandRunner,
getCommitMessage,
gitAdd,
Expand Down Expand Up @@ -63,8 +64,7 @@ expect.addSnapshotSerializer({
});

// stabilize commit SHA
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-changelog"));
expect.addSnapshotSerializer(changelogSerializer);

const setupChanges = async (cwd) => {
await gitTag(cwd, "v1.0.1-beta.3");
Expand Down
4 changes: 2 additions & 2 deletions libs/commands/version/src/lib/version-command.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import {
getCommitMessage,
gitAdd,
gitCommit,
gitSHASerializer,
gitTag,
initFixtureFactory,
loggingOutput,
Expand Down Expand Up @@ -73,8 +74,7 @@ const listDirty = (cwd) =>
);

// stabilize commit SHA
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-git-sha"));
expect.addSnapshotSerializer(gitSHASerializer);

describe("VersionCommand", () => {
describe("normal mode", () => {
Expand Down
4 changes: 2 additions & 2 deletions libs/commands/version/src/lib/version-ignore-changes.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import {
commandRunner,
gitAdd,
gitCommit,
gitSHASerializer,
gitTag,
initFixtureFactory,
showCommit,
Expand Down Expand Up @@ -39,8 +40,7 @@ const initFixture = initFixtureFactory(path.resolve(__dirname, "../../../publish
const lernaVersion = commandRunner(require("../command"));

// stabilize commit SHA
// eslint-disable-next-line @typescript-eslint/no-var-requires
expect.addSnapshotSerializer(require("@lerna/test-helpers/src/lib/serializers/serialize-git-sha"));
expect.addSnapshotSerializer(gitSHASerializer);

// TODO: figure out why these tests can't run with the mocks but others can
describe.skip("version --ignore-changes", () => {
Expand Down

0 comments on commit a971ca8

Please sign in to comment.