UNPKG

workspace-tools

Version:

A collection of tools that are useful in a git-controlled monorepo that is managed by one of these software:

75 lines (74 loc) 3.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const scope_1 = require("../scope"); describe("getScopedPackages", () => { it("can match scopes for full matches for an array", () => { const results = scope_1.getScopedPackages(["foo", "bar"], ["foo", "bar", "baz"]); expect(results).toContain("foo"); expect(results).toContain("bar"); expect(results).not.toContain("baz"); }); it("can match scopes for full matches for a map", () => { const results = scope_1.getScopedPackages(["foo", "bar"], { foo: {}, bar: {}, baz: {}, }); expect(results).toContain("foo"); expect(results).toContain("bar"); expect(results).not.toContain("baz"); }); it("can match scopes for full matches for a map of PackageInfos", () => { const results = scope_1.getScopedPackages(["foo", "bar"], { foo: { name: "foo", packageJsonPath: "nowhere", version: "1.0.0" }, bar: { name: "bar", packageJsonPath: "nowhere", version: "1.0.0" }, baz: { name: "baz", packageJsonPath: "nowhere", version: "1.0.0" }, }); expect(results).toContain("foo"); expect(results).toContain("bar"); expect(results).not.toContain("baz"); }); it("can match with wildcards", () => { const results = scope_1.getScopedPackages(["foo*"], ["foo1", "foo2", "baz"]); expect(results).toContain("foo1"); expect(results).toContain("foo2"); expect(results).not.toContain("baz"); }); it("can match with npm package scopes", () => { const results = scope_1.getScopedPackages(["foo"], ["@yay/foo", "@yay1/foo", "foo", "baz"]); expect(results).toContain("@yay/foo"); expect(results).toContain("@yay1/foo"); expect(results).toContain("foo"); expect(results).not.toContain("baz"); }); it("can match with npm package scopes with wildcards", () => { const results = scope_1.getScopedPackages(["foo*"], ["@yay/foo1", "@yay1/foo2", "foo", "baz"]); expect(results).toContain("@yay/foo1"); expect(results).toContain("@yay1/foo2"); expect(results).toContain("foo"); expect(results).not.toContain("baz"); }); it("uses the correct package scope when the search pattern starts a @ character", () => { const results = scope_1.getScopedPackages(["@yay/foo*"], ["@yay/foo1", "@yay1/foo2", "foo", "baz"]); expect(results).toContain("@yay/foo1"); expect(results).not.toContain("@yay1/foo2"); expect(results).not.toContain("foo"); expect(results).not.toContain("baz"); }); it("can deal with brace expansion with scopes", () => { const results = scope_1.getScopedPackages(["@yay/foo{1,2}"], ["@yay/foo1", "@yay/foo2", "@yay/foo3", "foo", "baz"]); expect(results).toContain("@yay/foo1"); expect(results).toContain("@yay/foo2"); expect(results).not.toContain("@yay/foo3"); expect(results).not.toContain("foo"); expect(results).not.toContain("baz"); }); it("can deal with negated search", () => { const results = scope_1.getScopedPackages(["@yay/foo*", "!@yay/foo3"], ["@yay/foo1", "@yay/foo2", "@yay/foo3", "foo", "baz"]); expect(results).toContain("@yay/foo1"); expect(results).toContain("@yay/foo2"); expect(results).not.toContain("@yay/foo3"); expect(results).not.toContain("foo"); expect(results).not.toContain("baz"); }); });