master
 1import { describe, test, expect } from 'vitest'
 2import { generateReadme } from './update-readme.js'
 3import type { Badge } from './badges.js'
 4import abcPresenter from '#badges/abc-commit/abc-commit.js'
 5import { badgeCollection } from './present-badges.js'
 6
 7describe('generateReadme()', () => {
 8  test('injects badges to md contents', () => {
 9    const readme = `
10<!-- my-badges start -->
11<!-- my-badges end -->
12# readme`
13    const badges: Badge[] = []
14    const grant = badgeCollection(badges)
15
16    abcPresenter.badges.forEach((badge) => grant(badge, 'test'))
17    expect(badges.length).toEqual(6)
18
19    const contents = generateReadme(readme, badges, 64)
20    expect(contents).toEqual(
21      `
22<!-- my-badges start -->
23<a href="my-badges/a-commit.md"><img src="" alt="test" title="test" width="64"></a>
24<a href="my-badges/ab-commit.md"><img src="" alt="test" title="test" width="64"></a>
25<a href="my-badges/abc-commit.md"><img src="" alt="test" title="test" width="64"></a>
26<a href="my-badges/abcd-commit.md"><img src="" alt="test" title="test" width="64"></a>
27<a href="my-badges/abcde-commit.md"><img src="" alt="test" title="test" width="64"></a>
28<a href="my-badges/abcdef-commit.md"><img src="" alt="test" title="test" width="64"></a>
29<!-- my-badges end -->
30# readme`,
31    )
32  })
33
34  test('prepends badges if no marks found', () => {
35    const readme = '# Readme'
36    const badges: Badge[] = []
37    const grant = badgeCollection(badges)
38
39    abcPresenter.badges.forEach((badge) => grant(badge, 'test'))
40    expect(badges.length).toEqual(6)
41
42    const contents = generateReadme(readme, badges, 64)
43
44    expect(contents).toEqual(
45      `<!-- my-badges start -->
46<a href="my-badges/a-commit.md"><img src="" alt="test" title="test" width="64"></a>
47<a href="my-badges/ab-commit.md"><img src="" alt="test" title="test" width="64"></a>
48<a href="my-badges/abc-commit.md"><img src="" alt="test" title="test" width="64"></a>
49<a href="my-badges/abcd-commit.md"><img src="" alt="test" title="test" width="64"></a>
50<a href="my-badges/abcde-commit.md"><img src="" alt="test" title="test" width="64"></a>
51<a href="my-badges/abcdef-commit.md"><img src="" alt="test" title="test" width="64"></a>
52<!-- my-badges end -->
53
54${readme}`,
55    )
56  })
57})