const fs = require('fs') const path = require('path') const { execSync } = require('child_process') beforeEach(() => { fs.rmdirSync('tests/__data__/output', { recursive: true }) fs.mkdirSync('tests/__data__/output') fs.copyFileSync('tests/__data__/input/test.db', 'tests/__data__/temp/test.db') }) afterEach(() => { fs.rmdirSync('tests/__data__/temp', { recursive: true }) fs.mkdirSync('tests/__data__/temp') }) it('return results if stream with error', () => { const result = execSync( 'DB_FILEPATH=tests/__data__/temp/test.db LOGS_PATH=tests/__data__/output/logs node scripts/commands/check-streams.js --cluster-id=1 --timeout=1', { encoding: 'utf8' } ) const logs = fs.readFileSync( path.resolve('tests/__data__/output/logs/check-streams/cluster_1.log'), { encoding: 'utf8' } ) const lines = logs.split('\n') expect(JSON.parse(lines[0])).toMatchObject({ _id: '2ST8btby3mmsgPF0', url: 'http://46.46.143.222:1935/live/mp4:ldpr.stream/playlist.m3u8', http: { referrer: '', 'user-agent': '' }, error: 'Operation timed out', streams: [], requests: [] }) expect(JSON.parse(lines[1])).toMatchObject({ _id: 'I6cjG2xCBRFFP4sz', url: 'https://iptv-all.lanesh4d0w.repl.co/andorra/atv', http: { referrer: '', 'user-agent': '' }, error: 'Operation timed out', streams: [], requests: [] }) })