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})