Give the tech radar its own page
/radar (/en/radar, /ca/radar) shows every technology the collective has placed, by ring: logo, category, what it is, why it sits there, its website and how many projects use it. The landing's radar summary links to it. It is the first listing — a page this site composes rather than one record's — so resolveRoute learns about those (LISTINGS), and builds their addresses and hreflang alternates from the same table. Logos sit on a light tile in both themes. A brand's mark is not ours to recolour, and Rust's, which is black, would vanish in dark mode. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,13 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from './api';
|
||||
import { homeHref, resolveRoute, SECTIONS } from './routes';
|
||||
import {
|
||||
homeHref,
|
||||
listingAlternates,
|
||||
listingPath,
|
||||
resolveRoute,
|
||||
SECTIONS,
|
||||
} from './routes';
|
||||
|
||||
describe('resolveRoute', () => {
|
||||
it('reads a page at the root as the default language', () => {
|
||||
@@ -77,6 +83,33 @@ describe('resolveRoute', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('listings', () => {
|
||||
it('reads the radar in every language, before any page of that slug', () => {
|
||||
expect(resolveRoute('/radar')).toEqual({
|
||||
type: 'radar',
|
||||
locale: 'es',
|
||||
slug: '',
|
||||
});
|
||||
expect(resolveRoute('/ca/radar')).toEqual({
|
||||
type: 'radar',
|
||||
locale: 'ca',
|
||||
slug: '',
|
||||
});
|
||||
});
|
||||
|
||||
it('builds the address resolveRoute reads back', () => {
|
||||
for (const locale of SUPPORTED_LOCALES) {
|
||||
expect(resolveRoute(listingPath('radar', locale))?.type).toBe('radar');
|
||||
}
|
||||
|
||||
expect(listingAlternates('radar')).toEqual({
|
||||
es: '/radar',
|
||||
en: '/en/radar',
|
||||
ca: '/ca/radar',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('homeHref', () => {
|
||||
it('answers on ?lang= for every language but the default', () => {
|
||||
expect(homeHref(DEFAULT_LOCALE)).toBe('/');
|
||||
|
||||
Reference in New Issue
Block a user