Skip to content

Commit b3964ae

Browse files
committed
Add tests
1 parent f9c2a21 commit b3964ae

5 files changed

Lines changed: 68 additions & 12 deletions

File tree

packages/definitions-parser/src/mocks.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,32 @@ export * from "moment"`
214214
hasDependency.set("tsconfig.json", tsconfig(["has-dependency-tests.ts"]));
215215
hasDependency.set("package.json", `{ "private": true, "dependencies": { "moment": "*" } }`);
216216

217+
const hasOlderTestDependency = dt.pkgDir("has-older-test-dependency");
218+
hasOlderTestDependency.set(
219+
"index.d.ts",
220+
`// Type definitions for has-older-test-dependency
221+
// Project: https://github.com/baz/foo
222+
// Definitions by: My Self <https://github.com/me>
223+
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
224+
`
225+
);
226+
hasOlderTestDependency.set(
227+
"has-older-test-dependency-tests.ts",
228+
`import "jquery";
229+
`
230+
);
231+
hasOlderTestDependency.set(
232+
"tsconfig.json",
233+
JSON.stringify({
234+
compilerOptions: {
235+
paths: {
236+
jquery: ["jquery/v1"]
237+
}
238+
},
239+
files: ["index.d.ts", "has-older-test-dependency-tests.ts"]
240+
})
241+
);
242+
217243
const jquery = dt.pkgDir("jquery");
218244
jquery.set(
219245
"JQuery.d.ts",

packages/definitions-parser/test/get-affected-packages.test.ts

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,18 @@ import { NotNeededPackage, TypesDataFile, AllPackages } from "../src/packages";
33
import { testo, createTypingsVersionRaw } from "./utils";
44

55
const typesData: TypesDataFile = {
6-
jquery: createTypingsVersionRaw("jquery", {}, []),
7-
known: createTypingsVersionRaw("known", { jquery: { major: 1 } }, []),
8-
"known-test": createTypingsVersionRaw("known-test", {}, ["jquery"]),
9-
"most-recent": createTypingsVersionRaw("most-recent", { jquery: "*" }, []),
10-
unknown: createTypingsVersionRaw("unknown", { "COMPLETELY-UNKNOWN": { major: 1 } }, []),
11-
"unknown-test": createTypingsVersionRaw("unknown-test", {}, ["WAT"])
6+
"has-older-test-dependency": createTypingsVersionRaw(
7+
"has-older-test-dependency",
8+
{},
9+
["jquery"],
10+
[{ packageName: "jquery", version: { major: 1 } }]
11+
),
12+
jquery: createTypingsVersionRaw("jquery", {}, [], []),
13+
known: createTypingsVersionRaw("known", { jquery: { major: 1 } }, [], []),
14+
"known-test": createTypingsVersionRaw("known-test", {}, ["jquery"], []),
15+
"most-recent": createTypingsVersionRaw("most-recent", { jquery: "*" }, [], []),
16+
unknown: createTypingsVersionRaw("unknown", { "COMPLETELY-UNKNOWN": { major: 1 } }, [], []),
17+
"unknown-test": createTypingsVersionRaw("unknown-test", {}, ["WAT"], [])
1218
};
1319
typesData.jquery["2.0"] = { ...typesData.jquery["1.0"], libraryMajorVersion: 2 };
1420

@@ -44,6 +50,9 @@ testo({
4450
{ name: "jquery", version: { major: 1 } }
4551
]);
4652
expect(changedPackages.map(({ id }) => id)).toEqual([{ name: "jquery", version: { major: 1, minor: 0 } }]);
47-
expect(dependentPackages.map(({ id }) => id)).toEqual([{ name: "known", version: { major: 1, minor: 0 } }]);
53+
expect(dependentPackages.map(({ id }) => id)).toEqual([
54+
{ name: "has-older-test-dependency", version: { major: 1, minor: 0 } },
55+
{ name: "known", version: { major: 1, minor: 0 } }
56+
]);
4857
}
4958
});

packages/definitions-parser/test/packages.test.ts

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,26 @@
11
import { createMockDT } from "../src/mocks";
22
import { getTypingInfo } from "../src/lib/definition-parser";
3-
import { TypingsVersions } from "../src/packages";
3+
import { AllPackages, TypingsVersions } from "../src/packages";
4+
import { parseDefinitions } from "../src/parse-definitions";
5+
import { quietLoggerWithErrors } from "@definitelytyped/utils";
6+
7+
describe(AllPackages, () => {
8+
let allPackages: AllPackages;
9+
10+
beforeAll(async () => {
11+
const dt = createMockDT();
12+
dt.addOldVersionOfPackage("jquery", "1");
13+
const [log] = quietLoggerWithErrors();
14+
allPackages = await parseDefinitions(dt.fs, undefined, log);
15+
});
16+
17+
it("applies path mappings to test dependencies", () => {
18+
const pkg = allPackages.tryGetLatestVersion("has-older-test-dependency")!;
19+
expect(Array.from(allPackages.allDependencyTypings(pkg), ({ id }) => id)).toEqual([
20+
{ name: "jquery", version: { major: 1, minor: 0 } }
21+
]);
22+
});
23+
});
424

525
describe(TypingsVersions, () => {
626
let versions: TypingsVersions;

packages/definitions-parser/test/parse-definitions.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ testo({
2020
const log = quietLoggerWithErrors()[0];
2121
const defs = await parseDefinitions(createMockDT().fs, undefined, log);
2222
expect(defs.allNotNeeded().length).toBe(1);
23-
expect(defs.allTypings().length).toBe(4);
23+
expect(defs.allTypings().length).toBe(5);
2424
const j = defs.tryGetLatestVersion("jquery");
2525
expect(j).toBeDefined();
2626
expect(j!.fullNpmName).toContain("types");

packages/definitions-parser/test/utils.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { TypingsVersionsRaw, License, DependencyVersion } from "../src/packages";
1+
import { TypingsVersionsRaw, License, DependencyVersion, PathMapping } from "../src/packages";
22

33
export function testo(o: { [s: string]: () => void }) {
44
for (const k of Object.keys(o)) {
@@ -9,7 +9,8 @@ export function testo(o: { [s: string]: () => void }) {
99
export function createTypingsVersionRaw(
1010
name: string,
1111
dependencies: { readonly [name: string]: DependencyVersion },
12-
testDependencies: string[]
12+
testDependencies: string[],
13+
pathMappings: PathMapping[]
1314
): TypingsVersionsRaw {
1415
return {
1516
"1.0": {
@@ -20,7 +21,7 @@ export function createTypingsVersionRaw(
2021
files: ["index.d.ts"],
2122
libraryMajorVersion: 1,
2223
libraryMinorVersion: 0,
23-
pathMappings: [],
24+
pathMappings,
2425
contributors: [{ name: "Bender", url: "futurama.com", githubUsername: "bender" }],
2526
minTsVersion: "2.3",
2627
typesVersions: [],

0 commit comments

Comments
 (0)