Skip to content

Commit d415156

Browse files
committed
fix: add more tests for metadata hook functionality
1 parent 7873c96 commit d415156

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

site/src/hooks/useEmbeddedMetadata.test.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,39 @@ describe(useEmbeddedMetadata.name, () => {
201201
cleanupTags();
202202
});
203203

204+
it("Will delete the original metadata node when you try deleting a metadata state value", () => {
205+
const key = "aardvark";
206+
const tagToDelete: MetadataKey = "user";
207+
208+
const cleanupTags = seedInitialMetadata(key);
209+
const { result } = renderMetadataHook(key);
210+
211+
const query = `meta[${key}=${tagToDelete}]`;
212+
let userNode = document.querySelector(query);
213+
expect(userNode).not.toBeNull();
214+
215+
act(() => result.current.clearMetadataByKey(tagToDelete));
216+
userNode = document.querySelector(query);
217+
expect(userNode).toBeNull();
218+
219+
cleanupTags();
220+
});
221+
222+
it("Will not notify subscribers if you try deleting a metadata value that does not exist (or has already been deleted)", () => {
223+
const key = "giraffe";
224+
const tagToDelete: MetadataKey = "entitlements";
225+
226+
const cleanupTags = seedInitialMetadata(key);
227+
const { result } = renderMetadataHook(key);
228+
act(() => result.current.clearMetadataByKey(tagToDelete));
229+
230+
const resultBeforeNoOp = result.current.metadata;
231+
act(() => result.current.clearMetadataByKey(tagToDelete));
232+
expect(result.current.metadata).toBe(resultBeforeNoOp);
233+
234+
cleanupTags();
235+
});
236+
204237
// Need to guarantee this, or else we could have a good number of bugs in the
205238
// React UI
206239
it("Always treats metadata as immutable values during all deletions", () => {

0 commit comments

Comments
 (0)