UNPKG

@embeddable.com/sdk-core

Version:

Core Embeddable SDK module responsible for web-components bundling and publishing.

99 lines (92 loc) 2.73 kB
import * as fs from "node:fs/promises"; import * as path from "node:path"; import { createManifest } from "./cleanup"; import { findFiles, loadJson } from "@embeddable.com/sdk-utils"; import { ResolvedEmbeddableConfig } from "./defineConfig"; const ctx = { client: { tmpDir: "tmpDir", stencilBuild: "stencilBuild", buildDir: "buildDir", }, buildTime: [80, 525000], }; vi.mock("node:fs/promises", () => ({ writeFile: vi.fn(), readFile: vi.fn(), rename: vi.fn(), })); vi.mock("@embeddable.com/sdk-utils", () => ({ findFiles: vi.fn(), loadJson: vi.fn(), })); vi.mock("node:path", async () => { const actual = await vi.importActual("node:path"); return { ...actual, resolve: vi.fn(), basename: vi.fn(), join: vi.fn(), }; }); describe("cleanup", () => { describe("createManifest", () => { beforeEach(() => { vi.mocked(fs.writeFile).mockImplementation(async () => undefined); vi.mocked(fs.rename).mockImplementation(async () => undefined); vi.mocked(findFiles).mockResolvedValue([["", ""]]); vi.mocked(loadJson).mockResolvedValue({ test: "test_value", }); vi.mocked(path.basename).mockReturnValue("basename"); vi.mocked(path.join).mockImplementation((...args) => args.join("/")); Object.defineProperties(process, { platform: { value: "darwin", }, version: { value: "v18.20.2", }, env: { value: { npm_config_user_agent: "npm/10.7.0", }, }, }); }); it("should create manifest", async () => { await createManifest({ ctx: ctx as unknown as ResolvedEmbeddableConfig, typesFileName: "typesFileName", metaFileName: "metaFileName", editorsMetaFileName: "editorsMetaFileName", stencilWrapperFileName: "stencilWrapperFileName", }); expect(fs.writeFile).toHaveBeenCalledWith( "tmpDir/embeddable-manifest.json", JSON.stringify({ entryFiles: { "embeddable-types.js": "typesFileName", "embeddable-components-meta.js": "metaFileName", "embeddable-editors-meta.js": "editorsMetaFileName", "embeddable-wrapper.esm.js": "stencilWrapperFileName", }, metadata: { nodeVersion: "v18.20.2", platform: "darwin", sdkVersions: {}, packageManager: "npm", packageManagerVersion: "10.7.0", globalHooks: { test: "test_value", }, metrics: { buildTime: "PT1M20.001S", }, origin: "push", }, }), ); }); }); });