Files
Sauci/apps/supabase/tests/admin-response-media.test.ts
jjbrunton 650c81856f feat(admin): preview response media
Show who-likely choices in human terms and provide protected photo and audio previews in activity and user response views. Fetch media by response ID through an authenticated Edge Function that enforces the view_responses permission.
2026-08-27 22:02:06 +01:00

31 lines
1019 B
TypeScript

import { assertEquals } from "std/assert/mod.ts";
import {
canViewResponseMedia,
getResponseMediaDescriptor,
} from "../functions/admin-response-media/helpers.ts";
Deno.test("response media access requires the response permission", () => {
assertEquals(canViewResponseMedia("super_admin", null), true);
assertEquals(canViewResponseMedia("pack_creator", ["view_responses"]), true);
assertEquals(canViewResponseMedia("pack_creator", ["view_activity"]), false);
});
Deno.test("response media is derived from the stored response payload", () => {
assertEquals(
getResponseMediaDescriptor({
type: "photo",
media_path:
"https://example.supabase.co/storage/v1/object/sign/response-media/user/question.jpg?token=secret",
}),
{ type: "photo", path: "user/question.jpg" },
);
assertEquals(
getResponseMediaDescriptor({ type: "text_answer", text: "hello" }),
null,
);
assertEquals(
getResponseMediaDescriptor({ type: "audio", media_path: "" }),
null,
);
});