Path: blob/main/tests/unit/preview-initial-path.test.ts
12924 views
/*1* preview-initial-path.test.ts2*3* Tests that previewInitialPath computes the correct browse URL path4* for different project types. Regression test for #14298.5*6* Copyright (C) 2026 Posit Software, PBC7*/89import { unitTest } from "../test.ts";10import { assertEquals } from "testing/asserts";11import { join } from "../../src/deno_ral/path.ts";12import { previewInitialPath } from "../../src/command/preview/preview.ts";13import { createMockProjectContext } from "./project/utils.ts";1415// deno-lint-ignore require-await16unitTest("previewInitialPath - single file returns empty path (#14298)", async () => {17const project = createMockProjectContext({ isSingleFile: true });18const outputFile = join(project.dir, "hello.html");1920const result = previewInitialPath(outputFile, project);21assertEquals(result, "", "Single-file preview should use root path, not filename");2223project.cleanup();24});2526// deno-lint-ignore require-await27unitTest("previewInitialPath - project file returns relative path", async () => {28const project = createMockProjectContext();29const outputFile = join(project.dir, "chapter.html");3031const result = previewInitialPath(outputFile, project);32assertEquals(result, "chapter.html", "Project preview should include relative path");3334project.cleanup();35});3637// deno-lint-ignore require-await38unitTest("previewInitialPath - project subdir returns relative path", async () => {39const project = createMockProjectContext();40const outputFile = join(project.dir, "pages", "about.html");4142const result = previewInitialPath(outputFile, project);43assertEquals(result, "pages/about.html", "Project preview should include subdirectory path");4445project.cleanup();46});4748// deno-lint-ignore require-await49unitTest("previewInitialPath - undefined project returns empty path", async () => {50const result = previewInitialPath("/tmp/hello.html", undefined);51assertEquals(result, "", "No project should use root path");52});535455