verify-public-repository-links.spec.ts 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { describe, expect, it } from 'vitest'
  2. import { findUnavailableRepositoryReferences } from './verify-public-repository-links.ts'
  3. describe('repository link policy', () => {
  4. it('rejects encoded and case-varied references to the unavailable repository', () => {
  5. const unavailableOwner = ['deepseek', 'ai'].join('-')
  6. const unavailableName = ['deepseek', 'harness', 'sdk'].join('-')
  7. const unavailableRepository = `${unavailableOwner}/${unavailableName}`
  8. const encodedRepository = unavailableRepository.replaceAll('-', '%2D').replace('/', '%2F')
  9. const htmlEncodedRepository = unavailableRepository.replace('/', '/')
  10. const jsonEscapedRepository = unavailableRepository.replace('/', '\\/')
  11. const unicodeEscapedRepository = unavailableRepository.replace('/', String.raw`\u002f`)
  12. const source = [
  13. 'https://github.com/deepseek-ai/deepseek-harness',
  14. `https://github.com/${unavailableRepository.toUpperCase()}/issues/1`,
  15. `https://github.com/${encodedRepository}/issues/2`,
  16. `https://github.com/${htmlEncodedRepository}/issues/3`,
  17. `"https:\\/\\/github.com\\/${jsonEscapedRepository}\\/issues\\/4"`,
  18. `"https:\\/\\/github.com\\/${unicodeEscapedRepository}\\/issues\\/5"`,
  19. `https://github.com/${unavailableOwner}/cordis`,
  20. `https://github.com/example/${unavailableName}`,
  21. ].join('\n')
  22. expect(findUnavailableRepositoryReferences('subject.md', source)).toEqual([
  23. { file: 'subject.md', line: 2 },
  24. { file: 'subject.md', line: 3 },
  25. { file: 'subject.md', line: 4 },
  26. { file: 'subject.md', line: 5 },
  27. { file: 'subject.md', line: 6 },
  28. ])
  29. })
  30. it('preserves frozen archived Agent Notes', () => {
  31. const unavailableRepository = ['deepseek-ai', 'deepseek-harness-sdk'].join('/')
  32. expect(findUnavailableRepositoryReferences(
  33. '.agents/notes/archived/process/historical-record.md',
  34. `https://github.com/${unavailableRepository}`,
  35. )).toEqual([])
  36. expect(findUnavailableRepositoryReferences(
  37. '.agents/notes/implemented/process/active-record.md',
  38. `https://github.com/${unavailableRepository}`,
  39. )).toEqual([{ file: '.agents/notes/implemented/process/active-record.md', line: 1 }])
  40. })
  41. })