Files
antigravity-skills-reference/apps/web-app/src/utils/__tests__/publicAssetUrls.test.ts
sickn33 08a31cacf5 fix(repo): Harden catalog sync and release integrity
Tighten the repo-state automation so canonical bot commits remain
predictable while leaving main clean after each sync.

Make the public catalog UI more honest by hiding dev-only sync,
turning stars into explicit browser-local saves, aligning risk types,
and removing hardcoded catalog counts.

Add shared public asset URL helpers, risk suggestion plumbing,
safer unpack/sync guards, and CI coverage gates so release and
maintainer workflows catch drift earlier.
2026-03-29 09:22:23 +02:00

62 lines
2.6 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
getAbsolutePublicAssetUrl,
getSkillMarkdownCandidateUrls,
getSkillsIndexCandidateUrls,
normalizeBasePath,
} from '../publicAssetUrls';
describe('public asset URL helpers', () => {
it('normalizes dot-relative BASE_URL values', () => {
expect(normalizeBasePath('./')).toBe('/');
expect(normalizeBasePath('/antigravity-awesome-skills/')).toBe('/antigravity-awesome-skills/');
});
it('builds stable skills index candidates for gh-pages routes', () => {
expect(
getSkillsIndexCandidateUrls({
baseUrl: '/antigravity-awesome-skills/',
origin: 'https://sickn33.github.io',
pathname: '/antigravity-awesome-skills/skill/some-id',
documentBaseUrl: 'https://sickn33.github.io/antigravity-awesome-skills/',
}),
).toEqual([
'https://sickn33.github.io/antigravity-awesome-skills/skills.json',
'https://sickn33.github.io/antigravity-awesome-skills/skills.json.backup',
'https://sickn33.github.io/skills.json',
'https://sickn33.github.io/skills.json.backup',
'https://sickn33.github.io/antigravity-awesome-skills/skill/skills.json',
'https://sickn33.github.io/antigravity-awesome-skills/skill/skills.json.backup',
'https://sickn33.github.io/antigravity-awesome-skills/skill/some-id/skills.json',
'https://sickn33.github.io/antigravity-awesome-skills/skill/some-id/skills.json.backup',
]);
});
it('builds stable markdown candidates for gh-pages routes', () => {
expect(
getSkillMarkdownCandidateUrls({
baseUrl: '/antigravity-awesome-skills/',
origin: 'https://sickn33.github.io',
pathname: '/antigravity-awesome-skills/skill/react-patterns',
documentBaseUrl: 'https://sickn33.github.io/antigravity-awesome-skills/',
skillPath: 'skills/react-patterns',
}),
).toEqual([
'https://sickn33.github.io/antigravity-awesome-skills/skills/react-patterns/SKILL.md',
'https://sickn33.github.io/skills/react-patterns/SKILL.md',
'https://sickn33.github.io/antigravity-awesome-skills/skill/skills/react-patterns/SKILL.md',
'https://sickn33.github.io/antigravity-awesome-skills/skill/react-patterns/skills/react-patterns/SKILL.md',
]);
});
it('resolves absolute public asset URLs from the shared base path logic', () => {
expect(
getAbsolutePublicAssetUrl('/skill/react-patterns', {
baseUrl: '/antigravity-awesome-skills/',
origin: 'https://sickn33.github.io',
}),
).toBe('https://sickn33.github.io/antigravity-awesome-skills/skill/react-patterns');
});
});