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.
62 lines
2.6 KiB
TypeScript
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');
|
|
});
|
|
});
|