Skip to content

Commit

Permalink
Fix broken tests
Browse files Browse the repository at this point in the history
  • Loading branch information
twschiller committed Sep 22, 2024
1 parent 432b87b commit d9f410a
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 38 deletions.
79 changes: 42 additions & 37 deletions src/background/deploymentUpdater.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ import { checkDeploymentPermissions } from "@/permissions/deploymentPermissionsH
import { emptyPermissionsFactory } from "@/permissions/permissionsUtils";
import { TEST_setContext } from "webext-detect";
import {
activatedModComponentFactory,
modComponentFactory,
modMetadataFactory,
} from "@/testUtils/factories/modComponentFactories";
Expand Down Expand Up @@ -376,29 +377,31 @@ describe("syncDeployments", () => {
isLinkedMock.mockResolvedValue(true);

const starterBrick = starterBrickDefinitionFactory();
const brick = {
const packageVersion = {
...parsePackage(starterBrick as unknown as RegistryPackage),
timestamp: new Date(),
};
registryFindMock.mockResolvedValue(brick);
registryFindMock.mockResolvedValue(packageVersion);

// An extension without a recipe. Exclude _recipe entirely to handle the case where the property is missing
const modComponent = modComponentFactory({
// A mod without a deployment. Exclude _deployment entirely to handle the case where the property is missing
const manualModComponent = activatedModComponentFactory({
extensionPointId: starterBrick.metadata!.id,
_recipe: modMetadataFactory(),
}) as ActivatedModComponent;
delete modComponent._recipe;
delete modComponent._deployment;
delete manualModComponent._deployment;

await saveModComponentState({
activatedModComponents: [modComponent],
activatedModComponents: [manualModComponent],
});

let editorState = initialEditorState;
const { fromModComponent } = adapter(starterBrick.definition.type);
const element = (await fromModComponent(modComponent)) as ButtonFormState;
const editorComponentFormState = (await fromModComponent(
manualModComponent,
)) as ButtonFormState;
editorState = editorSlice.reducer(
editorState,
editorSlice.actions.addModComponentFormState(element),
editorSlice.actions.addModComponentFormState(editorComponentFormState),
);
await saveEditorState(editorState);

Expand Down Expand Up @@ -749,58 +752,58 @@ describe("syncDeployments", () => {
});

test("can deactivate all deployed mods", async () => {
const personalStarterBrick = starterBrickDefinitionFactory();
const personalBrick = {
...parsePackage(personalStarterBrick as unknown as RegistryPackage),
const manualModStarterBrickDefinition = starterBrickDefinitionFactory();
const manualModStarterBrickPackageVersion = {
...parsePackage(
manualModStarterBrickDefinition as unknown as RegistryPackage,
),
timestamp: new Date(),
};

const standaloneModComponent = modComponentFactory({
extensionPointId: personalStarterBrick.metadata!.id,
}) as ActivatedModComponent;

const recipeModComponent = modComponentFactory({
const manuallyActivatedModComponent = activatedModComponentFactory({
_recipe: modMetadataFactory(),
}) as ActivatedModComponent;

const deploymentStarterBrick = starterBrickDefinitionFactory();
const deploymentsBrick = {
...parsePackage(deploymentStarterBrick as unknown as RegistryPackage),
const deploymentStarterBrickDefinition = starterBrickDefinitionFactory();
const deploymentStarterBrickPackageVersion = {
...parsePackage(
deploymentStarterBrickDefinition as unknown as RegistryPackage,
),
timestamp: new Date(),
};

const deploymentModComponent = modComponentFactory({
extensionPointId: deploymentStarterBrick.metadata!.id,
extensionPointId: deploymentStarterBrickDefinition.metadata!.id,
_deployment: { id: uuidv4(), timestamp: "2021-10-07T12:52:16.189Z" },
_recipe: modMetadataFactory(),
}) as ActivatedModComponent;

registryFindMock.mockImplementation(async (id) => {
if (id === personalBrick.id) {
return personalBrick;
if (id === manualModStarterBrickPackageVersion.id) {
return manualModStarterBrickPackageVersion;
}

return deploymentsBrick;
return deploymentStarterBrickPackageVersion;
});

let editorState = initialEditorState;

const personalModComponentAdapter = adapter(
personalStarterBrick.definition.type,
const manualModAdapter = adapter(
manualModStarterBrickDefinition.definition.type,
);
const personalModComponentFormState =
(await personalModComponentAdapter.fromModComponent(
standaloneModComponent,
const manualModComponentEditorFormState =
(await manualModAdapter.fromModComponent(
manuallyActivatedModComponent,
)) as ButtonFormState;
editorState = editorSlice.reducer(
editorState,
editorSlice.actions.addModComponentFormState(
personalModComponentFormState,
manualModComponentEditorFormState,
),
);

const deploymentModComponentAdapter = adapter(
deploymentStarterBrick.definition.type,
deploymentStarterBrickDefinition.definition.type,
);
const deploymentElement =
(await deploymentModComponentAdapter.fromModComponent(
Expand All @@ -813,9 +816,8 @@ describe("syncDeployments", () => {

await saveModComponentState({
activatedModComponents: [
standaloneModComponent,
deploymentModComponent,
recipeModComponent,
manuallyActivatedModComponent,
],
});
await saveEditorState(editorState);
Expand All @@ -827,15 +829,18 @@ describe("syncDeployments", () => {

const { activatedModComponents } = await getModComponentState();

expect(activatedModComponents).toHaveLength(2);
expect(activatedModComponents).toHaveLength(1);

const activatedModComponentIds = activatedModComponents.map((x) => x.id);
expect(activatedModComponentIds).toContain(standaloneModComponent.id);
expect(activatedModComponentIds).toContain(recipeModComponent.id);
expect(activatedModComponentIds).toContain(
manuallyActivatedModComponent.id,
);

const { modComponentFormStates } = (await getEditorState()) ?? {};
expect(modComponentFormStates).toBeArrayOfSize(1);
expect(modComponentFormStates![0]!).toEqual(personalModComponentFormState);
expect(modComponentFormStates![0]!).toEqual(
manualModComponentEditorFormState,
);
});

test("deactivates old mod when deployed mod id is changed", async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ async function activateDeployment({
activatedModId === deployment.package.package_id
) {
dispatch(actions.removeModById(activatedModId));

isReactivate = true;
}
}
Expand Down

0 comments on commit d9f410a

Please sign in to comment.