Skip to content

Commit

Permalink
test(core): abandon test/cases
Browse files Browse the repository at this point in the history
  • Loading branch information
hasundue committed Jun 13, 2024
1 parent b9d7860 commit 1bf9737
Show file tree
Hide file tree
Showing 37 changed files with 99 additions and 181 deletions.
9 changes: 6 additions & 3 deletions cli/main_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -218,17 +218,19 @@ describe("CLI", () => {
});

it("should run tasks before each commit with `--pre-commit` option", async () => {
const { stdout } = await molt("mod.ts --commit --pre-commit=fmt,lint");
const { stdout, stderr } = await molt(
"mod.ts --commit --pre-commit=fmt",
);
assertEquals(
stdout,
dedent`
📦 deno.land/x/deno_graph 0.50.0 => 123.456.789
💾 bump deno.land/x/deno_graph from 0.50.0 to 123.456.789
🔨 Running task fmt...
🔨 Running task lint...
📝 bump deno.land/x/deno_graph from 0.50.0 to 123.456.789
`,
stderr,
);
});

Expand All @@ -246,7 +248,7 @@ describe("CLI", () => {

// FIXME: The list of files only includes `deno.jsonc`
it.ignore("should find updates to a lock file with `--unstable-lock` option", async () => {
const { stdout } = await molt(
const { stdout, stderr } = await molt(
"mod_test.ts --unstable-lock --import-map deno.jsonc --write",
);
assertEquals(
Expand All @@ -267,6 +269,7 @@ describe("CLI", () => {
💾 mod_test.ts
💾 mod.ts
`,
stderr,
);
});
});
173 changes: 85 additions & 88 deletions core/import_map_test.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { assertEquals, assertExists, assertRejects } from "@std/assert";
import { fromFileUrl, toFileUrl } from "@std/path";
import { describe, it } from "@std/testing/bdd";
import { readFromJson } from "./import_map.ts";
import { beforeAll, describe, it } from "@std/testing/bdd";
import { type ImportMap, readFromJson } from "./import_map.ts";

describe("readFromJson", () => {
it("throws for an empty deno.json", async () => {
it("should throw for an empty deno.json", async () => {
const f = await Deno.makeTempFile();
// use this cool stuff once it lands in deno
// using cleanup = new DisposableStack();
Expand All @@ -15,154 +15,151 @@ describe("readFromJson", () => {
await Deno.remove(f);
});

it("test/cases/import_map/deno.json", async () => {
const url = new URL("../test/cases/import_map/deno.json", import.meta.url);
it("should parse deno.jsonc", async () => {
const url = new URL(
"../test/fixtures/deno.jsonc",
import.meta.url,
);
const importMap = await readFromJson(url);
assertExists(importMap);
assertEquals(importMap.path, fromFileUrl(url));
});

it("test/cases/import_map_referred/import_map.json", async () => {
it("should parse a referred import map", async () => {
const url = new URL(
"../test/cases/import_map_referred/import_map.json",
"../test/fixtures/import_map/deno.json",
import.meta.url,
);
const importMap = await readFromJson(url);
assertExists(importMap);
assertEquals(importMap.path, fromFileUrl(url));
assertEquals(importMap.path, fromFileUrl(new URL("import_map.json", url)));
});
});

describe("resolve()", () => {
it("resolve specifiers in import maps", async () => {
const importMap = await readFromJson(
new URL("../test/cases/import_map/deno.json", import.meta.url),
describe("resolve", () => {
const referrer = new URL("../test/fixtures/mod.ts", import.meta.url);
let map: ImportMap;

beforeAll(async () => {
map = await readFromJson(
new URL("../test/fixtures/deno.jsonc", import.meta.url),
);
assertExists(importMap);
const referrer = new URL(
"../test/cases/import_map/mod.ts",
import.meta.url,
});

it("should resolve a jsr specifier", () => {
assertEquals(
map.resolve("@std/assert", referrer),
{
resolved: "jsr:@std/assert@0.222.0",
key: "@std/assert",
value: "jsr:@std/assert@0.222.0",
},
);
});

it("should resolve a jsr specifier with a caret", () => {
assertEquals(
importMap.resolve("std/version.ts", referrer),
map.resolve("@std/testing", referrer),
{
resolved: "https://deno.land/std@0.200.0/version.ts",
key: "std/",
value: "https://deno.land/std@0.200.0/",
resolved: "jsr:@std/testing@^0.222.0",
key: "@std/testing",
value: "jsr:@std/testing@^0.222.0",
},
);
});

it("should resolve a jsr specifier with an entrypoint", () => {
assertEquals(
map.resolve("@std/assert/assert-equals", referrer),
{
resolved: "jsr:/@std/assert@0.222.0/assert-equals",
key: "@std/assert",
value: "jsr:@std/assert@0.222.0",
},
);
});

it("should resolve a npm specifier", () => {
assertEquals(
map.resolve("@octokit/core", referrer),
{
resolved: "npm:@octokit/core@6.1.0",
key: "@octokit/core",
value: "npm:@octokit/core@6.1.0",
},
);
});

it("should resolve an url specifier", () => {
assertEquals(
importMap.resolve("deno_graph", referrer),
map.resolve("x/deno_graph", referrer),
{
resolved: "https://deno.land/x/deno_graph@0.50.0/mod.ts",
key: "deno_graph",
key: "x/deno_graph",
value: "https://deno.land/x/deno_graph@0.50.0/mod.ts",
},
);
});

it("should resolve an url prefix specifier", () => {
assertEquals(
importMap.resolve("node-emoji", referrer),
map.resolve("std/assert/mod.ts", referrer),
{
resolved: "npm:node-emoji@2.0.0",
key: "node-emoji",
value: "npm:node-emoji@2.0.0",
resolved: "https://deno.land/std@0.222.0/assert/mod.ts",
key: "std/",
value: "https://deno.land/std@0.222.0/",
},
);
});

it("should resolve a local mapping", () => {
assertEquals(
importMap.resolve("/lib.ts", referrer),
map.resolve("lib/path.ts", referrer),
{
resolved:
new URL("../test/cases/import_map/lib.ts", import.meta.url).href,
resolved: new URL("../test/fixtures/lib/path.ts", import.meta.url).href,
key: undefined,
value: undefined,
},
);
});

it("do not resolve an url", async () => {
const importMap = await readFromJson(
new URL(
"../test/cases/import_map_no_resolve/deno.json",
import.meta.url,
),
);
assertExists(importMap);
const referrer = new URL(
"../test/cases/import_map_no_resolve/deps.ts",
import.meta.url,
);
it("should not resolve a complete url specifier", () => {
assertEquals(
importMap.resolve(
"https://deno.land/std@0.171.0/testing/asserts.ts",
referrer,
),
map.resolve("https://deno.land/std@0.222.0/assert/mod.ts", referrer),
undefined,
);
});

it("resolve specifiers in a referred import map", async () => {
const importMap = await readFromJson(
const map = await readFromJson(
new URL(
"../test/cases/import_map_referred/deno.json",
"../test/fixtures/import_map/deno.json",
import.meta.url,
),
);
assertExists(importMap);
assertExists(map);
const referrer = new URL(
"../test/cases/import_map_referred/mod.ts",
"../test/fixtures/import_map/mod.ts",
import.meta.url,
);
assertEquals(
importMap.resolve("dax", referrer),
map.resolve("dax", referrer),
{
resolved: "https://deno.land/x/dax@0.17.0/mod.ts",
key: "dax",
value: "https://deno.land/x/dax@0.17.0/mod.ts",
},
);
});

it("resolve a jsr specifier with a caret", async () => {
const dir = "../test/cases/import_map_duplicated_imports";
const importMap = await readFromJson(
new URL(`${dir}/deno.json`, import.meta.url),
);
assertExists(importMap);
const referrer = new URL(`${dir}/mod.ts`, import.meta.url);
assertEquals(
importMap.resolve("@std/testing", referrer),
{
resolved: "jsr:@std/testing@^0.210.0",
key: "@std/testing",
value: "jsr:@std/testing@^0.210.0",
},
);
});

it("resolve a jsr specifier with path", async () => {
const dir = "../test/cases/jsr_with_path_in_import_map";
const importMap = await readFromJson(
new URL(`${dir}/deno.json`, import.meta.url),
);
assertExists(importMap);
const referrer = new URL(`${dir}/mod.ts`, import.meta.url);
assertEquals(
importMap.resolve("@std/testing/bdd", referrer),
{
resolved: "jsr:/@std/testing@0.210.0/bdd",
key: "@std/testing",
value: "jsr:@std/testing@0.210.0",
},
);
});
});

Deno.test("resolveInner", async () => {
const { resolveInner } = await readFromJson(
new URL("../test/cases/import_map/deno.json", import.meta.url),
new URL("../test/fixtures/deno.jsonc", import.meta.url),
);
const referrer = new URL("../test/cases/import_map/mod.ts", import.meta.url);
const referrer = new URL("../test/fixtures/mod.ts", import.meta.url);
assertEquals(
resolveInner("/lib.ts", referrer),
new URL("../test/cases/import_map/lib.ts", import.meta.url).href,
resolveInner("lib/path.ts", referrer),
new URL("../test/fixtures/lib/path.ts", import.meta.url).href,
);
});
12 changes: 6 additions & 6 deletions core/lockfile_test.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
import { assertEquals, assertObjectMatch } from "@std/assert";
import {
collectUpdateFromLockFile,
createLockPart,
createLockPartForEach,
parseLockFileJson,
readLockFile,
} from "./lockfile.ts";
import { assertEquals, assertObjectMatch } from "@std/assert";

Deno.test("parseLockFileJson", async () =>
assertObjectMatch(
parseLockFileJson(
await Deno.readTextFile(
new URL("../test/cases/lockfile/deno.updated.lock", import.meta.url),
new URL("../test/fixtures/lockfile/deno.updated.lock", import.meta.url),
),
),
{
Expand Down Expand Up @@ -58,7 +58,7 @@ Deno.test("createLockPart - npm:hono", async () => {
Deno.test("createLockPartForEach", async () => {
const updated = await createLockPartForEach(
await readLockFile(
new URL("../test/cases/lockfile/deno.lock", import.meta.url),
new URL("../test/fixtures/lockfile/deno.lock", import.meta.url),
),
);
assertEquals(updated.length, 3);
Expand Down Expand Up @@ -98,7 +98,7 @@ Deno.test("createLockPartForEach", async () => {
Deno.test("createLockPartForEach - no updates", async () => {
const updated = await createLockPartForEach(
await readLockFile(
new URL("../test/cases/lockfile/deno.lock", import.meta.url),
new URL("../test/fixtures/lockfile/deno.lock", import.meta.url),
),
false,
);
Expand Down Expand Up @@ -146,7 +146,7 @@ Deno.test("createLockPartForEach - no updates", async () => {
Deno.test("collectUpdateFromLockFile", async () => {
const updates = await collectUpdateFromLockFile(
await readLockFile(
new URL("../test/cases/lockfile/deno.lock", import.meta.url),
new URL("../test/fixtures/lockfile/deno.lock", import.meta.url),
),
);
assertEquals(updates.length, 2);
Expand Down Expand Up @@ -193,7 +193,7 @@ Deno.test("collectUpdateFromLockFile", async () => {
Deno.test("collectUpdateFromLockFile - with a patch", async () => {
const updates = await collectUpdateFromLockFile(
await readLockFile(
new URL("../test/cases/lockfile/deno.lock", import.meta.url),
new URL("../test/fixtures/lockfile/deno.lock", import.meta.url),
),
await createLockPart("npm:hono@^3"),
);
Expand Down
4 changes: 2 additions & 2 deletions deno.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"test": "deno test -A --unstable-kv --no-check --no-lock",
"test:unit": "deno task -q test ./lib ./core",
"test:integration": "deno task -q test ./integration ./cli",
"pre-commit": "deno fmt && deno lint && deno task -q check && deno task -q test",
"pre-commit": "deno fmt && deno lint && deno task -q check && deno task -q test:unit",
"run": "deno run -A --unstable-kv --config ./deno.json ./cli/main.ts",
"update": "deno run --unstable-kv --config ./deno.json --allow-env --allow-read --allow-write --allow-net --allow-run=git,deno ./cli/main.ts ./deno.json ./*/deno.json --changelog",
"update:commit": "deno task -q update --commit --prefix 'build(deps):'"
Expand Down Expand Up @@ -38,7 +38,7 @@
},
"lint": {
"exclude": [
"test/cases",
"test/fixtures",
"test/snapshots"
],
"rules": {
Expand Down
1 change: 0 additions & 1 deletion test/cases/export.ts

This file was deleted.

1 change: 0 additions & 1 deletion test/cases/import.ts

This file was deleted.

2 changes: 0 additions & 2 deletions test/cases/import_and_export.ts

This file was deleted.

9 changes: 0 additions & 9 deletions test/cases/import_map/deno.json

This file was deleted.

5 changes: 0 additions & 5 deletions test/cases/import_map/mod.ts

This file was deleted.

1 change: 0 additions & 1 deletion test/cases/import_map/noop.ts

This file was deleted.

6 changes: 0 additions & 6 deletions test/cases/import_map_duplicated_imports/deno.json

This file was deleted.

1 change: 0 additions & 1 deletion test/cases/import_map_duplicated_imports/mod.ts

This file was deleted.

Loading

0 comments on commit 1bf9737

Please sign in to comment.