From 285559a4beed7c3124f2a04dc8f8f418a5c96ea4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Pereira?= <7235666+jomifepe@users.noreply.github.com> Date: Fri, 7 Aug 2026 16:05:38 +0100 Subject: [PATCH 1/6] feat(instant-start): clean up hosted preview on handoff Remove path-based preview URLs and delete deployment/hosted-preview when users run prismic init to take over the starter locally. Co-authored-by: Cursor --- src/commands/init.ts | 24 +++++++++++++++++++++--- src/lib/prismic/starterHandoff.ts | 30 ++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 src/lib/prismic/starterHandoff.ts diff --git a/src/commands/init.ts b/src/commands/init.ts index d02e31c..cd8040a 100644 --- a/src/commands/init.ts +++ b/src/commands/init.ts @@ -22,6 +22,10 @@ import { } from "../lib/prismic/clients/core"; import { getCustomTypes, getSlices } from "../lib/prismic/clients/custom-types"; import { getRepository, type Repository } from "../lib/prismic/clients/repository"; +import { + getHostedPreviewURLsToRemove, + HOSTED_PREVIEW_DEPLOYMENT_PATH, +} from "../lib/prismic/starterHandoff"; import { getProfile } from "../lib/prismic/clients/user"; import { canonicalizeCustomType, canonicalizeSlice } from "../lib/prismic/models"; import { completeOnboardingSteps } from "../lib/prismic/onboarding"; @@ -317,12 +321,17 @@ async function completeStarterHandoff( config: { repo: string; token: string | undefined; host: string }, ): Promise { try { - const hostedPreviewURL = new URL(adapter.localPreviewConfig.resolverPath, starter.deploymentUrl) - .href; + const hostedPreviewURLs = new Set( + getHostedPreviewURLsToRemove({ + starter, + repositoryName: config.repo, + resolverPath: adapter.localPreviewConfig.resolverPath, + }), + ); const previews = await getPreviews(config); await Promise.all( previews - .filter((preview) => preview.url === hostedPreviewURL) + .filter((preview) => hostedPreviewURLs.has(preview.url)) .map((preview) => removePreview(preview.id, config)), ); const hasDevelopmentPreview = previews.some( @@ -351,5 +360,14 @@ async function completeStarterHandoff( if (await isStarterPackage(starter)) { await updatePackageJsonName(config.repo); + await removeHostedPreviewDeployment(); } } + +async function removeHostedPreviewDeployment(): Promise { + const projectRoot = await findProjectRoot(); + await rm(new URL(`${HOSTED_PREVIEW_DEPLOYMENT_PATH}/`, projectRoot), { + recursive: true, + force: true, + }); +} diff --git a/src/lib/prismic/starterHandoff.ts b/src/lib/prismic/starterHandoff.ts new file mode 100644 index 0000000..6c510ff --- /dev/null +++ b/src/lib/prismic/starterHandoff.ts @@ -0,0 +1,30 @@ +type StarterHandoffDescriptor = { + deploymentUrl: string +} + +export const HOSTED_PREVIEW_DEPLOYMENT_PATH = "deployment/hosted-preview" + +export function buildHostedPreviewUrl(args: { + deploymentUrl: string + repositoryName: string +}): string { + return new URL(`/api/preview/${args.repositoryName}`, args.deploymentUrl).href +} + +export function getHostedPreviewURLsToRemove(args: { + starter: StarterHandoffDescriptor + repositoryName: string + resolverPath: string +}): string[] { + const urls = new Set() + + urls.add( + buildHostedPreviewUrl({ + deploymentUrl: args.starter.deploymentUrl, + repositoryName: args.repositoryName, + }), + ) + urls.add(new URL(args.resolverPath, args.starter.deploymentUrl).href) + + return [...urls] +} From f5049f2f72330a94760c2545572de591590ebe8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Pereira?= <7235666+jomifepe@users.noreply.github.com> Date: Fri, 7 Aug 2026 16:59:05 +0100 Subject: [PATCH 2/6] refactor: update handoff path to deployment/instant-preview Align CLI cleanup with renamed instant preview deployment folder. Co-authored-by: Cursor --- src/commands/init.ts | 4 +-- src/lib/prismic/starterHandoff.ts | 60 +++++++++++++++---------------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/commands/init.ts b/src/commands/init.ts index cd8040a..74af61d 100644 --- a/src/commands/init.ts +++ b/src/commands/init.ts @@ -24,7 +24,7 @@ import { getCustomTypes, getSlices } from "../lib/prismic/clients/custom-types"; import { getRepository, type Repository } from "../lib/prismic/clients/repository"; import { getHostedPreviewURLsToRemove, - HOSTED_PREVIEW_DEPLOYMENT_PATH, + INSTANT_PREVIEW_DEPLOYMENT_PATH, } from "../lib/prismic/starterHandoff"; import { getProfile } from "../lib/prismic/clients/user"; import { canonicalizeCustomType, canonicalizeSlice } from "../lib/prismic/models"; @@ -366,7 +366,7 @@ async function completeStarterHandoff( async function removeHostedPreviewDeployment(): Promise { const projectRoot = await findProjectRoot(); - await rm(new URL(`${HOSTED_PREVIEW_DEPLOYMENT_PATH}/`, projectRoot), { + await rm(new URL(`${INSTANT_PREVIEW_DEPLOYMENT_PATH}/`, projectRoot), { recursive: true, force: true, }); diff --git a/src/lib/prismic/starterHandoff.ts b/src/lib/prismic/starterHandoff.ts index 6c510ff..904c2fc 100644 --- a/src/lib/prismic/starterHandoff.ts +++ b/src/lib/prismic/starterHandoff.ts @@ -1,30 +1,30 @@ -type StarterHandoffDescriptor = { - deploymentUrl: string -} - -export const HOSTED_PREVIEW_DEPLOYMENT_PATH = "deployment/hosted-preview" - -export function buildHostedPreviewUrl(args: { - deploymentUrl: string - repositoryName: string -}): string { - return new URL(`/api/preview/${args.repositoryName}`, args.deploymentUrl).href -} - -export function getHostedPreviewURLsToRemove(args: { - starter: StarterHandoffDescriptor - repositoryName: string - resolverPath: string -}): string[] { - const urls = new Set() - - urls.add( - buildHostedPreviewUrl({ - deploymentUrl: args.starter.deploymentUrl, - repositoryName: args.repositoryName, - }), - ) - urls.add(new URL(args.resolverPath, args.starter.deploymentUrl).href) - - return [...urls] -} +type StarterHandoffDescriptor = { + deploymentUrl: string +} + +export const INSTANT_PREVIEW_DEPLOYMENT_PATH = "deployment/instant-preview" + +export function buildHostedPreviewUrl(args: { + deploymentUrl: string + repositoryName: string +}): string { + return new URL(`/api/preview/${args.repositoryName}`, args.deploymentUrl).href +} + +export function getHostedPreviewURLsToRemove(args: { + starter: StarterHandoffDescriptor + repositoryName: string + resolverPath: string +}): string[] { + const urls = new Set() + + urls.add( + buildHostedPreviewUrl({ + deploymentUrl: args.starter.deploymentUrl, + repositoryName: args.repositoryName, + }), + ) + urls.add(new URL(args.resolverPath, args.starter.deploymentUrl).href) + + return [...urls] +} From af398fb87973b0803bc381a7d18612a59832ab25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Pereira?= <7235666+jomifepe@users.noreply.github.com> Date: Fri, 7 Aug 2026 17:03:07 +0100 Subject: [PATCH 3/6] refactor: update handoff path to .deployment/instant-preview Co-authored-by: Cursor --- src/lib/prismic/starterHandoff.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/prismic/starterHandoff.ts b/src/lib/prismic/starterHandoff.ts index 904c2fc..32a468b 100644 --- a/src/lib/prismic/starterHandoff.ts +++ b/src/lib/prismic/starterHandoff.ts @@ -2,7 +2,7 @@ type StarterHandoffDescriptor = { deploymentUrl: string } -export const INSTANT_PREVIEW_DEPLOYMENT_PATH = "deployment/instant-preview" +export const INSTANT_PREVIEW_DEPLOYMENT_PATH = ".deployment/instant-preview" export function buildHostedPreviewUrl(args: { deploymentUrl: string From bf9d72d2b79d9efe1b9b950c594eaad8a835b0e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Pereira?= <7235666+jomifepe@users.noreply.github.com> Date: Fri, 7 Aug 2026 17:27:04 +0100 Subject: [PATCH 4/6] refactor(instant-start): simplify starter project cleanup on init Remove deployment path constant and delete documents with .deployment together during starter handoff when the local package matches. Co-authored-by: Cursor --- src/commands/init.ts | 30 ++++++++++-------------------- src/lib/prismic/starterHandoff.ts | 2 -- test/init.test.ts | 11 ++++++++--- 3 files changed, 18 insertions(+), 25 deletions(-) diff --git a/src/commands/init.ts b/src/commands/init.ts index 74af61d..f60fbf1 100644 --- a/src/commands/init.ts +++ b/src/commands/init.ts @@ -24,7 +24,6 @@ import { getCustomTypes, getSlices } from "../lib/prismic/clients/custom-types"; import { getRepository, type Repository } from "../lib/prismic/clients/repository"; import { getHostedPreviewURLsToRemove, - INSTANT_PREVIEW_DEPLOYMENT_PATH, } from "../lib/prismic/starterHandoff"; import { getProfile } from "../lib/prismic/clients/user"; import { canonicalizeCustomType, canonicalizeSlice } from "../lib/prismic/models"; @@ -245,7 +244,7 @@ export default createCommand(config, async ({ values }) => { `Repository "${repo}" has no starter models. Use a repository created from the starter in the Prismic dashboard.`, ); } - await removeStarterDocuments(connectedRepository.starter); + await cleanupStarterProject(connectedRepository.starter); } const hasStarterModelChanges = @@ -303,18 +302,6 @@ async function isStarterPackage(starter: NonNullable): Pr return Boolean(starterPackageName && packageJson.name === starterPackageName); } -async function removeStarterDocuments(starter: NonNullable): Promise { - if (!(await isStarterPackage(starter))) { - console.warn( - "Starter seed documents were not removed because the local package does not match the repository starter.", - ); - return; - } - - const projectRoot = await findProjectRoot(); - await rm(new URL("documents/", projectRoot), { recursive: true, force: true }); -} - async function completeStarterHandoff( adapter: Adapter, starter: NonNullable, @@ -360,14 +347,17 @@ async function completeStarterHandoff( if (await isStarterPackage(starter)) { await updatePackageJsonName(config.repo); - await removeHostedPreviewDeployment(); } } -async function removeHostedPreviewDeployment(): Promise { +async function cleanupStarterProject( + starter: NonNullable, +): Promise { + if (!(await isStarterPackage(starter))) return; + const projectRoot = await findProjectRoot(); - await rm(new URL(`${INSTANT_PREVIEW_DEPLOYMENT_PATH}/`, projectRoot), { - recursive: true, - force: true, - }); + await Promise.all([ + rm(new URL(".deployment", projectRoot), { recursive: true, force: true }), + rm(new URL("documents", projectRoot), { recursive: true, force: true }), + ]); } diff --git a/src/lib/prismic/starterHandoff.ts b/src/lib/prismic/starterHandoff.ts index 32a468b..dca9197 100644 --- a/src/lib/prismic/starterHandoff.ts +++ b/src/lib/prismic/starterHandoff.ts @@ -2,8 +2,6 @@ type StarterHandoffDescriptor = { deploymentUrl: string } -export const INSTANT_PREVIEW_DEPLOYMENT_PATH = ".deployment/instant-preview" - export function buildHostedPreviewUrl(args: { deploymentUrl: string repositoryName: string diff --git a/test/init.test.ts b/test/init.test.ts index 4895327..9c6946a 100644 --- a/test/init.test.ts +++ b/test/init.test.ts @@ -315,6 +315,8 @@ it("completes the handoff for a starter project", async ({ ); await mkdir(new URL("documents/", project), { recursive: true }); await writeFile(new URL("documents/homepage.json", project), "{}"); + await mkdir(new URL(".deployment/foo/", project), { recursive: true }); + await writeFile(new URL(".deployment/foo/bar", project), "test"); const { stderr, exitCode } = await prismic("init", ["--repo", repo, "--no-setup"]); expect(exitCode, stderr).toBe(0); @@ -325,8 +327,9 @@ it("completes the handoff for a starter project", async ({ const packageJson = JSON.parse(await readFile(new URL("package.json", project), "utf-8")); expect(packageJson.name).toBe(repo); - // Seed documents are removed. + // Starter artifacts are removed. await expect(access(new URL("documents/", project))).rejects.toThrow(); + await expect(access(new URL(".deployment/", project))).rejects.toThrow(); // The hosted preview is replaced by the local Development preview. const previews = await getPreviews({ repo, token, host }); @@ -344,7 +347,7 @@ it("completes the handoff for a starter project", async ({ } }, 120_000); -it("keeps seed documents when the local package does not match the starter", async ({ +it("keeps starter artifacts when the local package does not match the starter", async ({ expect, project, prismic, @@ -357,12 +360,14 @@ it("keeps seed documents when the local package does not match the starter", asy // The fixture package.json has no name, so it cannot match the starter. await mkdir(new URL("documents/", project), { recursive: true }); await writeFile(new URL("documents/homepage.json", project), "{}"); + await mkdir(new URL(".deployment/foo/", project), { recursive: true }); + await writeFile(new URL(".deployment/foo/bar", project), "test"); const { stderr, exitCode } = await prismic("init", ["--repo", repo, "--no-setup"]); expect(exitCode, stderr).toBe(0); - expect(stderr).toContain("Starter seed documents were not removed"); await expect(access(new URL("documents/", project))).resolves.toBeUndefined(); + await expect(access(new URL(".deployment/", project))).resolves.toBeUndefined(); } finally { await deleteRepository(repo, { token, password, host }); } From 889ea6f605ec78c21ff5b6d94db4be402cb0b588 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Pereira?= <7235666+jomifepe@users.noreply.github.com> Date: Fri, 7 Aug 2026 18:30:45 +0100 Subject: [PATCH 5/6] fix(instant-start): match hosted preview URLs by pathname on handoff cleanup Hosted preview URLs now include a prismicHost query param; compare origin and pathname only so init still removes the starter handoff entry. Co-authored-by: Cursor --- src/commands/init.ts | 11 ++++++- src/lib/prismic/starterHandoff.ts | 18 +++++++++++ test/starter-handoff.test.ts | 52 +++++++++++++++++++++++++++++++ 3 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 test/starter-handoff.test.ts diff --git a/src/commands/init.ts b/src/commands/init.ts index f60fbf1..60127b3 100644 --- a/src/commands/init.ts +++ b/src/commands/init.ts @@ -24,6 +24,7 @@ import { getCustomTypes, getSlices } from "../lib/prismic/clients/custom-types"; import { getRepository, type Repository } from "../lib/prismic/clients/repository"; import { getHostedPreviewURLsToRemove, + isHostedPreviewUrl, } from "../lib/prismic/starterHandoff"; import { getProfile } from "../lib/prismic/clients/user"; import { canonicalizeCustomType, canonicalizeSlice } from "../lib/prismic/models"; @@ -318,7 +319,15 @@ async function completeStarterHandoff( const previews = await getPreviews(config); await Promise.all( previews - .filter((preview) => hostedPreviewURLs.has(preview.url)) + .filter( + (preview) => + hostedPreviewURLs.has(preview.url) || + isHostedPreviewUrl({ + previewUrl: preview.url, + deploymentUrl: starter.deploymentUrl, + repositoryName: config.repo, + }), + ) .map((preview) => removePreview(preview.id, config)), ); const hasDevelopmentPreview = previews.some( diff --git a/src/lib/prismic/starterHandoff.ts b/src/lib/prismic/starterHandoff.ts index dca9197..8595e95 100644 --- a/src/lib/prismic/starterHandoff.ts +++ b/src/lib/prismic/starterHandoff.ts @@ -9,6 +9,24 @@ export function buildHostedPreviewUrl(args: { return new URL(`/api/preview/${args.repositoryName}`, args.deploymentUrl).href } +export function isHostedPreviewUrl(args: { + previewUrl: string + deploymentUrl: string + repositoryName: string +}): boolean { + try { + const preview = new URL(args.previewUrl) + const deployment = new URL(args.deploymentUrl) + + return ( + preview.origin === deployment.origin && + preview.pathname === `/api/preview/${args.repositoryName}` + ) + } catch { + return false + } +} + export function getHostedPreviewURLsToRemove(args: { starter: StarterHandoffDescriptor repositoryName: string diff --git a/test/starter-handoff.test.ts b/test/starter-handoff.test.ts new file mode 100644 index 0000000..98f4441 --- /dev/null +++ b/test/starter-handoff.test.ts @@ -0,0 +1,52 @@ +import { describe, expect, it } from "vitest"; + +import { + buildHostedPreviewUrl, + isHostedPreviewUrl, +} from "../src/lib/prismic/starterHandoff.ts"; + +describe("isHostedPreviewUrl", () => { + const deploymentUrl = "https://next-instant-start-abc123-prismic.vercel.app"; + const repositoryName = "abc12345"; + + it("matches hosted preview URLs regardless of query params", () => { + expect( + isHostedPreviewUrl({ + previewUrl: `${deploymentUrl}/api/preview/${repositoryName}?prismicHost=dev-tools-wroom.com`, + deploymentUrl, + repositoryName, + }), + ).toBe(true); + }); + + it("matches the canonical hosted preview URL without query params", () => { + expect( + isHostedPreviewUrl({ + previewUrl: buildHostedPreviewUrl({ + deploymentUrl, + repositoryName, + }), + deploymentUrl, + repositoryName, + }), + ).toBe(true); + }); + + it("does not match a different repository or deployment", () => { + expect( + isHostedPreviewUrl({ + previewUrl: `${deploymentUrl}/api/preview/zzzzzzzz?prismicHost=dev-tools-wroom.com`, + deploymentUrl, + repositoryName, + }), + ).toBe(false); + + expect( + isHostedPreviewUrl({ + previewUrl: `https://other.vercel.app/api/preview/${repositoryName}`, + deploymentUrl, + repositoryName, + }), + ).toBe(false); + }); +}); From ef224f89a7f672c71bc99ddd75f2f0ca05bd5c2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Pereira?= <7235666+jomifepe@users.noreply.github.com> Date: Tue, 11 Aug 2026 11:29:36 +0100 Subject: [PATCH 6/6] refactor(instant-start): remove hosted preview by name Delete Starter Preview configurations during handoff without coupling the CLI to hosted preview URL formats. --- src/commands/init.ts | 27 ++-------------- src/lib/prismic/starterHandoff.ts | 46 --------------------------- test/init.test.ts | 2 +- test/starter-handoff.test.ts | 52 ------------------------------- 4 files changed, 4 insertions(+), 123 deletions(-) delete mode 100644 src/lib/prismic/starterHandoff.ts delete mode 100644 test/starter-handoff.test.ts diff --git a/src/commands/init.ts b/src/commands/init.ts index 60127b3..4cb7ad3 100644 --- a/src/commands/init.ts +++ b/src/commands/init.ts @@ -22,10 +22,6 @@ import { } from "../lib/prismic/clients/core"; import { getCustomTypes, getSlices } from "../lib/prismic/clients/custom-types"; import { getRepository, type Repository } from "../lib/prismic/clients/repository"; -import { - getHostedPreviewURLsToRemove, - isHostedPreviewUrl, -} from "../lib/prismic/starterHandoff"; import { getProfile } from "../lib/prismic/clients/user"; import { canonicalizeCustomType, canonicalizeSlice } from "../lib/prismic/models"; import { completeOnboardingSteps } from "../lib/prismic/onboarding"; @@ -309,25 +305,10 @@ async function completeStarterHandoff( config: { repo: string; token: string | undefined; host: string }, ): Promise { try { - const hostedPreviewURLs = new Set( - getHostedPreviewURLsToRemove({ - starter, - repositoryName: config.repo, - resolverPath: adapter.localPreviewConfig.resolverPath, - }), - ); const previews = await getPreviews(config); await Promise.all( previews - .filter( - (preview) => - hostedPreviewURLs.has(preview.url) || - isHostedPreviewUrl({ - previewUrl: preview.url, - deploymentUrl: starter.deploymentUrl, - repositoryName: config.repo, - }), - ) + .filter((preview) => preview.label === "Starter Preview") .map((preview) => removePreview(preview.id, config)), ); const hasDevelopmentPreview = previews.some( @@ -359,11 +340,9 @@ async function completeStarterHandoff( } } -async function cleanupStarterProject( - starter: NonNullable, -): Promise { +async function cleanupStarterProject(starter: NonNullable): Promise { if (!(await isStarterPackage(starter))) return; - + const projectRoot = await findProjectRoot(); await Promise.all([ rm(new URL(".deployment", projectRoot), { recursive: true, force: true }), diff --git a/src/lib/prismic/starterHandoff.ts b/src/lib/prismic/starterHandoff.ts deleted file mode 100644 index 8595e95..0000000 --- a/src/lib/prismic/starterHandoff.ts +++ /dev/null @@ -1,46 +0,0 @@ -type StarterHandoffDescriptor = { - deploymentUrl: string -} - -export function buildHostedPreviewUrl(args: { - deploymentUrl: string - repositoryName: string -}): string { - return new URL(`/api/preview/${args.repositoryName}`, args.deploymentUrl).href -} - -export function isHostedPreviewUrl(args: { - previewUrl: string - deploymentUrl: string - repositoryName: string -}): boolean { - try { - const preview = new URL(args.previewUrl) - const deployment = new URL(args.deploymentUrl) - - return ( - preview.origin === deployment.origin && - preview.pathname === `/api/preview/${args.repositoryName}` - ) - } catch { - return false - } -} - -export function getHostedPreviewURLsToRemove(args: { - starter: StarterHandoffDescriptor - repositoryName: string - resolverPath: string -}): string[] { - const urls = new Set() - - urls.add( - buildHostedPreviewUrl({ - deploymentUrl: args.starter.deploymentUrl, - repositoryName: args.repositoryName, - }), - ) - urls.add(new URL(args.resolverPath, args.starter.deploymentUrl).href) - - return [...urls] -} diff --git a/test/init.test.ts b/test/init.test.ts index 9c6946a..ffda37c 100644 --- a/test/init.test.ts +++ b/test/init.test.ts @@ -335,7 +335,7 @@ it("completes the handoff for a starter project", async ({ const previews = await getPreviews({ repo, token, host }); const previewLabels = previews.map((preview) => preview.label); expect(previewLabels).toContain("Development"); - expect(previewLabels).not.toContain("Production"); + expect(previewLabels).not.toContain("Starter Preview"); const repository = await getRepository({ repo, token, host }); expect(repository.simulatorUrl).toBe("http://localhost:3000/slice-simulator"); diff --git a/test/starter-handoff.test.ts b/test/starter-handoff.test.ts deleted file mode 100644 index 98f4441..0000000 --- a/test/starter-handoff.test.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { describe, expect, it } from "vitest"; - -import { - buildHostedPreviewUrl, - isHostedPreviewUrl, -} from "../src/lib/prismic/starterHandoff.ts"; - -describe("isHostedPreviewUrl", () => { - const deploymentUrl = "https://next-instant-start-abc123-prismic.vercel.app"; - const repositoryName = "abc12345"; - - it("matches hosted preview URLs regardless of query params", () => { - expect( - isHostedPreviewUrl({ - previewUrl: `${deploymentUrl}/api/preview/${repositoryName}?prismicHost=dev-tools-wroom.com`, - deploymentUrl, - repositoryName, - }), - ).toBe(true); - }); - - it("matches the canonical hosted preview URL without query params", () => { - expect( - isHostedPreviewUrl({ - previewUrl: buildHostedPreviewUrl({ - deploymentUrl, - repositoryName, - }), - deploymentUrl, - repositoryName, - }), - ).toBe(true); - }); - - it("does not match a different repository or deployment", () => { - expect( - isHostedPreviewUrl({ - previewUrl: `${deploymentUrl}/api/preview/zzzzzzzz?prismicHost=dev-tools-wroom.com`, - deploymentUrl, - repositoryName, - }), - ).toBe(false); - - expect( - isHostedPreviewUrl({ - previewUrl: `https://other.vercel.app/api/preview/${repositoryName}`, - deploymentUrl, - repositoryName, - }), - ).toBe(false); - }); -});