database/tests/commands/db/update.test.ts
2025-05-02 06:17:07 +03:00

38 lines
1.3 KiB
TypeScript

import { execSync } from 'child_process'
import * as fs from 'fs-extra'
import os from 'os'
beforeEach(() => {
fs.emptyDirSync('tests/__data__/output')
fs.copySync('tests/__data__/input/db/update/data', 'tests/__data__/output/data')
})
describe('db:update', () => {
let ENV_VAR = 'DATA_DIR=tests/__data__/output/data'
if (os.platform() === 'win32') {
ENV_VAR = 'SET "DATA_DIR=tests/__data__/output/data" &&'
}
it('can update db with data from issues', () => {
const cmd = `${ENV_VAR} npm run db:update --silent`
const stdout = execSync(cmd, { encoding: 'utf8' })
if (process.env.DEBUG === 'true') console.log(cmd, stdout)
expect(content('output/data/blocklist.csv')).toEqual(
content('expected/db/update/data/blocklist.csv')
)
expect(content('output/data/channels.csv')).toEqual(
content('expected/db/update/data/channels.csv')
)
expect(content('output/data/feeds.csv')).toEqual(content('expected/db/update/data/feeds.csv'))
expect(stdout).toEqual(
'OUTPUT=closes #6871, closes #5871, closes #7901, closes #17612, closes #5901, closes #5902, closes #5903, closes #5701, closes #8900, closes #9900, closes #5900, closes #5899, closes #5898, closes #5897, closes #5891'
)
})
})
function content(filepath: string) {
return fs.readFileSync(`tests/__data__/${filepath}`, {
encoding: 'utf8'
})
}