Path: blob/main/tests/smoke/render/render-symlink-embed-resources.test.ts
12921 views
/*1* render-symlink-embed-resources.test.ts2*3* Regression test for https://github.com/quarto-dev/quarto-cli/issues/138904*5* When rendering a qmd via a symlinked path with embed-resources: true,6* the cleanup should not fail due to path mismatch between symlink and real path.7*8* Copyright (C) 2020-2025 Posit Software, PBC9*/1011import { testQuartoCmd } from "../../test.ts";12import { noErrors, fileExists } from "../../verify.ts";13import { docs } from "../../utils.ts";14import { join, dirname, resolve } from "../../../src/deno_ral/path.ts";15import { existsSync } from "../../../src/deno_ral/fs.ts";16import { isWindows } from "../../../src/deno_ral/platform.ts";1718const testDir = docs("render/symlink-embed-resources");19const testFile = "test.qmd";20const symlinkDir = join(dirname(testDir), "symlink-embed-resources-link");2122testQuartoCmd(23"render",24[join(symlinkDir, testFile)],25[26noErrors,27fileExists(join(symlinkDir, "test.html")),28],29{30ignore: isWindows,31setup: async () => {32if (existsSync(symlinkDir)) {33await Deno.remove(symlinkDir);34}35// Use absolute paths for symlink to ensure correct resolution36Deno.symlinkSync(resolve(testDir), resolve(symlinkDir));37},38teardown: async () => {39const htmlViaSymlink = join(symlinkDir, "test.html");40if (existsSync(htmlViaSymlink)) {41await Deno.remove(htmlViaSymlink);42}43if (existsSync(symlinkDir)) {44await Deno.remove(symlinkDir);45}46const realHtml = join(testDir, "test.html");47if (existsSync(realHtml)) {48await Deno.remove(realHtml);49}50},51},52"Render via symlink with embed-resources (issue #13890)",53);545556