UNPKG

@jungvonmatt/sb-migrate

Version:

CLI tool for managing Storyblok schema and content migrations

130 lines 5.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const vitest_1 = require("vitest"); const transformEntries_1 = require("../../handlers/transformEntries"); const migration_1 = require("../../utils/migration"); // Mock the helper and component methods vitest_1.vi.mock("../../utils/migration", () => ({ helper: { updateComponent: vitest_1.vi.fn(), }, })); (0, vitest_1.describe)("handleTransformEntries", () => { const mockTransform = vitest_1.vi.fn(); const mockTransformEntries = vitest_1.vi.fn(); const mockComponent = { transformEntries: mockTransformEntries, }; const mockMigration = { component: "test-component", transform: mockTransform, type: "transform-entries", }; const mockOptions = { isDryrun: false, publish: false, publishLanguages: ["en"], }; (0, vitest_1.beforeEach)(() => { vitest_1.vi.clearAllMocks(); migration_1.helper.updateComponent.mockResolvedValue(mockComponent); }); (0, vitest_1.it)("should transform entries successfully", async () => { // Arrange mockTransformEntries.mockResolvedValue(undefined); // Act await (0, transformEntries_1.handleTransformEntries)(mockMigration, mockOptions); // Assert (0, vitest_1.expect)(migration_1.helper.updateComponent).toHaveBeenCalledWith("test-component"); (0, vitest_1.expect)(mockTransformEntries).toHaveBeenCalledWith(mockTransform, { isDryrun: false, publish: false, publishLanguages: ["en"], }); }); (0, vitest_1.it)("should handle publish option from migration", async () => { // Arrange const migrationWithPublish = { ...mockMigration, publish: true, }; mockTransformEntries.mockResolvedValue(undefined); // Act await (0, transformEntries_1.handleTransformEntries)(migrationWithPublish, mockOptions); // Assert (0, vitest_1.expect)(mockTransformEntries).toHaveBeenCalledWith(mockTransform, { isDryrun: false, publish: true, publishLanguages: ["en"], }); }); (0, vitest_1.it)("should handle languages option from migration", async () => { // Arrange const migrationWithLanguages = { ...mockMigration, languages: ["de", "fr"], }; mockTransformEntries.mockResolvedValue(undefined); // Act await (0, transformEntries_1.handleTransformEntries)(migrationWithLanguages, mockOptions); // Assert (0, vitest_1.expect)(mockTransformEntries).toHaveBeenCalledWith(mockTransform, { isDryrun: false, publish: false, publishLanguages: ["de", "fr"], }); }); (0, vitest_1.it)("should handle dry run correctly", async () => { // Arrange const dryRunOptions = { isDryrun: true, publish: false, publishLanguages: ["en"], }; mockTransformEntries.mockResolvedValue(undefined); // Act await (0, transformEntries_1.handleTransformEntries)(mockMigration, dryRunOptions); // Assert (0, vitest_1.expect)(mockTransformEntries).toHaveBeenCalledWith(mockTransform, { isDryrun: true, publish: false, publishLanguages: ["en"], }); }); (0, vitest_1.it)("should throw error if component is missing", async () => { // Arrange const migrationWithoutComponent = { transform: mockTransform, }; // Act & Assert await (0, vitest_1.expect)((0, transformEntries_1.handleTransformEntries)(migrationWithoutComponent, mockOptions)).rejects.toThrow("Transform migration requires a component name and transform function"); (0, vitest_1.expect)(migration_1.helper.updateComponent).not.toHaveBeenCalled(); (0, vitest_1.expect)(mockTransformEntries).not.toHaveBeenCalled(); }); (0, vitest_1.it)("should throw error if transform function is missing", async () => { // Arrange const migrationWithoutTransform = { component: "test-component", }; // Act & Assert await (0, vitest_1.expect)((0, transformEntries_1.handleTransformEntries)(migrationWithoutTransform, mockOptions)).rejects.toThrow("Transform migration requires a component name and transform function"); (0, vitest_1.expect)(migration_1.helper.updateComponent).not.toHaveBeenCalled(); (0, vitest_1.expect)(mockTransformEntries).not.toHaveBeenCalled(); }); (0, vitest_1.it)("should handle component update errors gracefully", async () => { // Arrange const error = new Error("Component Update Error"); migration_1.helper.updateComponent.mockRejectedValue(error); // Act & Assert await (0, vitest_1.expect)((0, transformEntries_1.handleTransformEntries)(mockMigration, mockOptions)).rejects.toThrow("Component Update Error"); (0, vitest_1.expect)(mockTransformEntries).not.toHaveBeenCalled(); }); (0, vitest_1.it)("should handle transform entries errors gracefully", async () => { // Arrange const error = new Error("Transform Error"); mockTransformEntries.mockRejectedValue(error); // Act & Assert await (0, vitest_1.expect)((0, transformEntries_1.handleTransformEntries)(mockMigration, mockOptions)).rejects.toThrow("Transform Error"); }); }); //# sourceMappingURL=transformEntries.test.js.map