master
1import { describe, it, expect, afterAll } from 'vitest'
2import fs from 'node:fs/promises'
3import { main } from './main.js'
4import os from 'node:os'
5import { log } from './log.js'
6import { Badge } from './badges.js'
7import { Data } from './data.js'
8
9const temp = `${os.tmpdir()}/${Math.random().toString(36).slice(2)}`
10
11describe.skip('main', () => {
12 log.info('temp', temp)
13 afterAll(async () => fs.rm(temp, { recursive: true }))
14
15 // prettier-ignore
16 it(
17 'generates badges by repo name',
18 async () => {
19 await main(['--user', 'semrel-extra-bot', '--cwd', temp, '--dryrun'])
20 const myBadgesJson = JSON.parse(await fs.readFile(`${temp}/repo/my-badges/my-badges.json`, 'utf8'))
21 const dataJson: Data = JSON.parse(await fs.readFile(`${temp}/data/semrel-extra-bot.json`, 'utf8'))
22
23 expect(myBadgesJson.some(({id}: Badge) => id === 'chore-commit')).toBeTruthy()
24 expect(myBadgesJson.some(({id}: Badge) => id === 'favorite-word')).toBeTruthy()
25 expect(dataJson.repos.some(({name}) => name === 'semrel-extra-bot')).toBeTruthy()
26 expect(dataJson.user.pinnedItems.nodes?.some((node) => node?.name === 'zx-semrel')).toBeTruthy()
27 },
28 10 * 60 * 1000,
29 )
30})