Skip to content

Commit

Permalink
Mark storage as required
Browse files Browse the repository at this point in the history
  • Loading branch information
twschiller committed Jun 16, 2024
1 parent fe93dea commit 2f35848
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 34 deletions.
22 changes: 0 additions & 22 deletions src/bricks/renderers/customForm.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -271,28 +271,6 @@ describe("CustomFormRenderer", () => {
);
});

test("error on storage.type localStorage", async () => {
// eslint-disable-next-line testing-library/render-result-naming-convention -- false positive
const renderPromise = brick.render(
unsafeAssumeValidArg({
storage: { type: "localStorage" },
autoSave: true,
recordId: "test",
schema: {
type: "object",
properties: {
name: { type: "string" },
},
},
}),
brickOptionsFactory(),
);

await expect(renderPromise).rejects.toThrow(
"localStorage data binding is no longer supported since extension version 2.0.3",
);
});

test("Supports postSubmitAction reset", async () => {
const brick = new CustomFormRenderer();
const runPipelineMock = jest.fn();
Expand Down
15 changes: 3 additions & 12 deletions src/bricks/renderers/customForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ export const CUSTOM_FORM_SCHEMA: Schema = {
default: false,
},
},
required: ["schema"],
required: ["schema", "storage"],
};

const IsolatedCustomFormComponent: React.FunctionComponent<
Expand Down Expand Up @@ -258,7 +258,7 @@ export class CustomFormRenderer extends RendererABC {
// Default to save if not provided for backwards compatibility
postSubmitAction = "save",
}: BrickArgs<{
storage?: Storage;
storage: Storage;
recordId: string | null;
schema: Schema;
uiSchema?: UiSchema;
Expand All @@ -277,6 +277,7 @@ export class CustomFormRenderer extends RendererABC {
throw new Error("extensionId is required");
}

// Redundant with the JSON Schema input validation for `required`. But keeping here for clarity
if (!storage) {
throw new PropError(
"storage is required since extension version 2.0.3",
Expand All @@ -286,16 +287,6 @@ export class CustomFormRenderer extends RendererABC {
);
}

// Support for localStorage was removed in 2.0.3
if ((storage.type as string) === "localStorage") {
throw new PropError(
"localStorage data binding is no longer supported since extension version 2.0.3",
this.id,
"storage",
storage,
);
}

if (isEmpty(recordId) && storage.type === "database") {
throw new PropError(
"recordId is required for database storage",
Expand Down

0 comments on commit 2f35848

Please sign in to comment.