Skip to content

Commit 8efdcf4

Browse files
Filmbostock
andauthored
in build tests, sort by extension then path (#1809)
* sort by extension then path this fixes the wobbling tests (duckdb, sql, npm) that change when a commit modifies the content hash of inputs.js vs inputs.css * win32 * adjust sort order to minimize churn * remove unused import --------- Co-authored-by: Mike Bostock <[email protected]>
1 parent 30be23f commit 8efdcf4

16 files changed

+25
-21
lines changed

test/build-test.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ import assert from "node:assert";
22
import {existsSync, readdirSync, statSync} from "node:fs";
33
import {mkdir, mkdtemp, open, readFile, rename, rm, unlink, writeFile} from "node:fs/promises";
44
import os from "node:os";
5+
import {extname} from "node:path/posix";
56
import {join, normalize, relative} from "node:path/posix";
67
import {PassThrough} from "node:stream";
7-
import {ascending, difference} from "d3-array";
8+
import {ascending, difference, sort} from "d3-array";
89
import type {BuildManifest} from "../src/build.js";
910
import {FileBuildEffects, build} from "../src/build.js";
1011
import {normalizeConfig, readConfig, setCurrentDate} from "../src/config.js";
@@ -76,7 +77,10 @@ describe("build", () => {
7677
// renumber the hashes so they are sequential. This way we don’t have to
7778
// update the test snapshots whenever Framework’s client code changes. We
7879
// make an exception for minisearch.json because to test the content.
79-
for (const path of findFiles(join(outputDir, "_observablehq"))) {
80+
for (const path of sort(
81+
findFiles(join(outputDir, "_observablehq")),
82+
(a, b) => ascending(extname(a) === ".css", extname(b) === ".css") || ascending(a, b)
83+
)) {
8084
const match = /^((.+)\.[0-9a-f]{8})\.(\w+)$/.exec(path);
8185
if (!match) throw new Error(`no hash found: ${path}`);
8286
const [, key, name, ext] = match;

test/output/build/duckdb/index.html

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@
77
<title>test DuckDB</title>
88
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
99
<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&amp;display=swap" crossorigin>
10-
<link rel="preload" as="style" href="./_observablehq/theme-air,near-midnight.00000004.css">
11-
<link rel="preload" as="style" href="./_observablehq/stdlib/inputs.00000007.css">
10+
<link rel="preload" as="style" href="./_observablehq/theme-air,near-midnight.00000007.css">
11+
<link rel="preload" as="style" href="./_observablehq/stdlib/inputs.00000006.css">
1212
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&amp;display=swap" crossorigin>
13-
<link rel="stylesheet" type="text/css" href="./_observablehq/theme-air,near-midnight.00000004.css">
14-
<link rel="stylesheet" type="text/css" href="./_observablehq/stdlib/inputs.00000007.css">
13+
<link rel="stylesheet" type="text/css" href="./_observablehq/theme-air,near-midnight.00000007.css">
14+
<link rel="stylesheet" type="text/css" href="./_observablehq/stdlib/inputs.00000006.css">
1515
<link rel="modulepreload" href="./_observablehq/client.00000001.js">
1616
<link rel="modulepreload" href="./_observablehq/runtime.00000002.js">
1717
<link rel="modulepreload" href="./_observablehq/stdlib.00000003.js">
18-
<link rel="modulepreload" href="./_observablehq/stdlib/duckdb.00000005.js">
19-
<link rel="modulepreload" href="./_observablehq/stdlib/inputs.00000006.js">
18+
<link rel="modulepreload" href="./_observablehq/stdlib/duckdb.00000004.js">
19+
<link rel="modulepreload" href="./_observablehq/stdlib/inputs.00000005.js">
2020
<link rel="modulepreload" href="./_npm/@duckdb/[email protected]/cd372fb8.js">
2121
<link rel="modulepreload" href="./_npm/[email protected]/cd372fb8.js">
2222
<link rel="modulepreload" href="./_npm/[email protected]/cd372fb8.js">
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
import "../_observablehq/stdlib/inputs.00000005.js";
1+
import "../_observablehq/stdlib/inputs.00000004.js";

0 commit comments

Comments
 (0)