diff --git a/packages/cli/src/utils/lintProject.test.ts b/packages/cli/src/utils/lintProject.test.ts index 439ba1c202..e87f85a96d 100644 --- a/packages/cli/src/utils/lintProject.test.ts +++ b/packages/cli/src/utils/lintProject.test.ts @@ -951,6 +951,19 @@ describe("multiple_root_compositions", () => { expect(finding).toBeUndefined(); }); + it("ignores root-level rail.html generated for embedded-caption compositing", async () => { + const project = makeProject(validHtml()); + writeFileSync( + join(project, "rail.html"), + '
', + ); + const { results } = await lintProject(project); + const finding = results[0]?.result.findings.find( + (f) => f.code === "multiple_root_compositions", + ); + expect(finding).toBeUndefined(); + }); + it("ignores macOS AppleDouble HTML metadata files", async () => { const project = makeProject(validHtml()); writeFileSync(join(project, "._index.html"), validHtml()); diff --git a/packages/lint/src/project.ts b/packages/lint/src/project.ts index a23226542f..377e77bc9b 100644 --- a/packages/lint/src/project.ts +++ b/packages/lint/src/project.ts @@ -462,7 +462,7 @@ function lintMultipleRootCompositions(projectDir: string): HyperframeLintFinding ); const rootCompositions: string[] = []; for (const file of rootHtmlFiles) { - if (file === "caption-skin.html") continue; + if (file === "caption-skin.html" || file === "rail.html") continue; const content = readFileSync(join(projectDir, file), "utf-8"); if (/data-composition-id/i.test(content)) { rootCompositions.push(file);