165 lines
3.9 KiB
TypeScript
165 lines
3.9 KiB
TypeScript
import { runMigrator } from "../migration-helper.spec";
|
|
|
|
import { MergeEnvironmentState } from "./45-merge-environment-state";
|
|
|
|
describe("MergeEnvironmentState", () => {
|
|
const migrator = new MergeEnvironmentState(44, 45);
|
|
|
|
it("can migrate all data", async () => {
|
|
const output = await runMigrator(migrator, {
|
|
authenticatedAccounts: ["user1", "user2"],
|
|
global: {
|
|
extra: "data",
|
|
},
|
|
global_environment_region: "US",
|
|
global_environment_urls: {
|
|
base: "example.com",
|
|
},
|
|
user1: {
|
|
extra: "data",
|
|
settings: {
|
|
extra: "data",
|
|
},
|
|
},
|
|
user2: {
|
|
extra: "data",
|
|
settings: {
|
|
extra: "data",
|
|
},
|
|
},
|
|
extra: "data",
|
|
user_user1_environment_region: "US",
|
|
user_user2_environment_region: "EU",
|
|
user_user1_environment_urls: {
|
|
base: "example.com",
|
|
},
|
|
user_user2_environment_urls: {
|
|
base: "other.example.com",
|
|
},
|
|
});
|
|
|
|
expect(output).toEqual({
|
|
authenticatedAccounts: ["user1", "user2"],
|
|
global: {
|
|
extra: "data",
|
|
},
|
|
global_environment_environment: {
|
|
region: "US",
|
|
urls: {
|
|
base: "example.com",
|
|
},
|
|
},
|
|
user1: {
|
|
extra: "data",
|
|
settings: {
|
|
extra: "data",
|
|
},
|
|
},
|
|
user2: {
|
|
extra: "data",
|
|
settings: {
|
|
extra: "data",
|
|
},
|
|
},
|
|
extra: "data",
|
|
user_user1_environment_environment: {
|
|
region: "US",
|
|
urls: {
|
|
base: "example.com",
|
|
},
|
|
},
|
|
user_user2_environment_environment: {
|
|
region: "EU",
|
|
urls: {
|
|
base: "other.example.com",
|
|
},
|
|
},
|
|
});
|
|
});
|
|
|
|
it("handles missing parts", async () => {
|
|
const output = await runMigrator(migrator, {
|
|
authenticatedAccounts: ["user1", "user2"],
|
|
global: {
|
|
extra: "data",
|
|
},
|
|
user1: {
|
|
extra: "data",
|
|
settings: {
|
|
extra: "data",
|
|
},
|
|
},
|
|
user2: null,
|
|
});
|
|
|
|
expect(output).toEqual({
|
|
authenticatedAccounts: ["user1", "user2"],
|
|
global: {
|
|
extra: "data",
|
|
},
|
|
user1: {
|
|
extra: "data",
|
|
settings: {
|
|
extra: "data",
|
|
},
|
|
},
|
|
user2: null,
|
|
});
|
|
});
|
|
|
|
it("can migrate only global data", async () => {
|
|
const output = await runMigrator(migrator, {
|
|
authenticatedAccounts: [],
|
|
global_environment_region: "Self-Hosted",
|
|
global: {},
|
|
});
|
|
|
|
expect(output).toEqual({
|
|
authenticatedAccounts: [],
|
|
global_environment_environment: {
|
|
region: "Self-Hosted",
|
|
urls: undefined,
|
|
},
|
|
global: {},
|
|
});
|
|
});
|
|
|
|
it("can migrate only user state", async () => {
|
|
const output = await runMigrator(migrator, {
|
|
authenticatedAccounts: ["user1"] as const,
|
|
global: null,
|
|
user1: { settings: {} },
|
|
user_user1_environment_region: "Self-Hosted",
|
|
user_user1_environment_urls: {
|
|
base: "some-base-url",
|
|
api: "some-api-url",
|
|
identity: "some-identity-url",
|
|
icons: "some-icons-url",
|
|
notifications: "some-notifications-url",
|
|
events: "some-events-url",
|
|
webVault: "some-webVault-url",
|
|
keyConnector: "some-keyConnector-url",
|
|
},
|
|
});
|
|
|
|
expect(output).toEqual({
|
|
authenticatedAccounts: ["user1"] as const,
|
|
global: null,
|
|
user1: { settings: {} },
|
|
user_user1_environment_environment: {
|
|
region: "Self-Hosted",
|
|
urls: {
|
|
base: "some-base-url",
|
|
api: "some-api-url",
|
|
identity: "some-identity-url",
|
|
icons: "some-icons-url",
|
|
notifications: "some-notifications-url",
|
|
events: "some-events-url",
|
|
webVault: "some-webVault-url",
|
|
keyConnector: "some-keyConnector-url",
|
|
},
|
|
},
|
|
});
|
|
});
|
|
});
|