Every package now has tests — no more empty test suites: - map-core: 33 tests — maxspeedColor, routeGradeColor, elevationColor, POI categories, getCategoriesForProfile, tile layer configs - db: 5 tests — withDb error handling (503 on DB error, re-throws Response/DataWithResponseInit, logs errors) - ui: 14 tests — Button variants/sizes/disabled, Input label/id/error, Card className forwarding - map: 2 tests — baseLayers/overlayLayers re-export verification Remove passWithNoTests from vitest.shared.ts so missing tests are caught immediately when adding new packages. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import { describe, it, expect } from "vitest";
|
|
import { baseLayers, overlayLayers } from "./tiles.ts";
|
|
|
|
describe("baseLayers", () => {
|
|
it("has at least one base layer", () => {
|
|
expect(baseLayers.length).toBeGreaterThan(0);
|
|
});
|
|
|
|
it("every layer has a valid URL template", () => {
|
|
for (const layer of baseLayers) {
|
|
expect(layer.url).toContain("{z}");
|
|
expect(layer.url).toContain("{x}");
|
|
expect(layer.url).toContain("{y}");
|
|
}
|
|
});
|
|
|
|
it("every layer has a name and attribution", () => {
|
|
for (const layer of baseLayers) {
|
|
expect(layer.name).toBeTruthy();
|
|
expect(layer.attribution).toBeTruthy();
|
|
}
|
|
});
|
|
|
|
it("includes OpenStreetMap", () => {
|
|
expect(baseLayers.some((l) => l.name === "OpenStreetMap")).toBe(true);
|
|
});
|
|
});
|
|
|
|
describe("overlayLayers", () => {
|
|
it("every overlay has a unique id", () => {
|
|
const ids = overlayLayers.map((l) => l.id);
|
|
expect(new Set(ids).size).toBe(ids.length);
|
|
});
|
|
|
|
it("every overlay has a valid URL template", () => {
|
|
for (const layer of overlayLayers) {
|
|
expect(layer.url).toContain("{z}");
|
|
}
|
|
});
|
|
});
|