trails/packages/map-core/src/tiles.test.ts
Ullrich Schäfer 9420201932
Add tests to all packages, remove passWithNoTests
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>
2026-04-13 00:48:27 +02:00

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}");
}
});
});