From e6fbc34aab5110e47c197fcd0324fa6b19859317 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk Date: Sun, 30 Jan 2022 02:36:40 +0300 Subject: [PATCH] Update save-results.js --- scripts/commands/save-results.js | 14 ++--- tests/__data__/expected/database/programs.db | 23 +++++++ tests/commands/save-results.test.js | 64 +++++++------------- 3 files changed, 51 insertions(+), 50 deletions(-) create mode 100644 tests/__data__/expected/database/programs.db diff --git a/scripts/commands/save-results.js b/scripts/commands/save-results.js index 82feac10..baec0a31 100644 --- a/scripts/commands/save-results.js +++ b/scripts/commands/save-results.js @@ -6,7 +6,7 @@ const LOGS_DIR = process.env.LOGS_DIR || 'scripts/logs' async function main() { const errorsLog = `${LOGS_DIR}/errors.log` await file.create(errorsLog) - await db.channels.load() + await db.queue.load() await db.programs.load() await db.programs.reset() const files = await file.list(`${LOGS_DIR}/load-cluster/cluster_*.log`) @@ -32,12 +32,10 @@ async function main() { }) await db.programs.insert(programs) - if (result.channel.logo) { - await db.channels.update( - { _id: result.channel._id }, - { $set: { logo: result.channel.logo, programCount: result.programs.length } } - ) - } + await db.queue.update( + { _id: result.channel._id }, + { $set: { programCount: result.programs.length } } + ) if (result.error) { await file.append( @@ -48,7 +46,7 @@ async function main() { } } - await db.channels.compact() + await db.queue.compact() } main() diff --git a/tests/__data__/expected/database/programs.db b/tests/__data__/expected/database/programs.db new file mode 100644 index 00000000..fa90f445 --- /dev/null +++ b/tests/__data__/expected/database/programs.db @@ -0,0 +1,23 @@ +{"title":"InfoNeu ","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641711600,"stop":1641715200,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"6AzYe7lqcSN05ZUq"} +{"title":"Club Piolet","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641715200,"stop":1641718800,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"5vmbOpGwkj1Dc8FJ"} +{"title":"InfoNeu ","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641718800,"stop":1641729600,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"ThxnjcPz8zOuRZuF"} +{"title":"Andorra Actualitat (RNA)","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641729600,"stop":1641730800,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"p8kQkIzlX2ebpIfN"} +{"title":"El Trànsit","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641730800,"stop":1641732000,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"DYZHd71eCvOl49jT"} +{"title":"El Trànsit","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641732000,"stop":1641732300,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"EkIqGqryukUIkwLg"} +{"title":"Informatiu migdia","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641732300,"stop":1641733800,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"ILpRjp36kwPoEG03"} +{"title":"El Trànsit","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641733800,"stop":1641736200,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"dqKxildlF1bMGLrU"} +{"title":"La Terre vue du Sport","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641736200,"stop":1641736800,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"gGgrefSDo9Gqlfy2"} +{"title":"Informatiu migdia","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641736800,"stop":1641738300,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"LSDJTeJ2L9PUcgEM"} +{"title":"Club Piolet","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641738300,"stop":1641741900,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"c5jmzbB2jGzY3aY3"} +{"title":"Informatiu migdia","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641741900,"stop":1641743400,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"j9pYfk5wvqBTSFUf"} +{"title":"El Trànsit","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641743400,"stop":1641750900,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"eb91kjF1CeJh52Oy"} +{"title":"La rotonda","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641750900,"stop":1641753600,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"NTNNjmk2r6uTVIBz"} +{"title":"Club Piolet","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641753600,"stop":1641757200,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"5ulSbWY45V6krNjX"} +{"title":"El Trànsit","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641757200,"stop":1641757500,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"Eh3UMow3zKnqz8mq"} +{"title":"Informatiu vespre","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641757500,"stop":1641759000,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"P3Fce8tELLKRN4Wu"} +{"title":"Recull setmanal","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641759000,"stop":1641761100,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"BmcYIFHG15JCrdKs"} +{"title":"Memòries d'arxiu: 10 anys d'ATV","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641761100,"stop":1641763800,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"1ZbtgoH47f297xyb"} +{"title":"El cafè dels matins","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641763800,"stop":1641766800,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"Zrrg7bLwvjMe0jqb"} +{"title":"La Terre vue du Sport","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641766800,"stop":1641767400,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"Q5qBBURrSryIIS2V"} +{"title":"Informatiu vespre","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641767400,"stop":1641772800,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"yEMHeWXc4Si9sGb1"} +{"title":"Àrea Andorra Difusió","description":null,"category":null,"season":null,"episode":null,"icon":null,"channel":"AndorraTV.ad","lang":"ca","start":1641772800,"stop":1641776400,"site":"chaines-tv.orange.fr","_cid":"0Wefq0oMR3feCcuY","_id":"vPe2XXH6Knru6zzL"} diff --git a/tests/commands/save-results.test.js b/tests/commands/save-results.test.js index d9f8c76f..3b5957e4 100644 --- a/tests/commands/save-results.test.js +++ b/tests/commands/save-results.test.js @@ -8,8 +8,8 @@ beforeEach(() => { fs.mkdirSync('tests/__data__/output/database', { recursive: true }) fs.copyFileSync( - 'tests/__data__/input/database/channels.db', - 'tests/__data__/output/database/channels.db' + 'tests/__data__/input/database/queue.db', + 'tests/__data__/output/database/queue.db' ) const stdout = execSync( @@ -18,55 +18,35 @@ beforeEach(() => { ) }) -it('can save results', () => { - const programs = content('tests/__data__/output/database/programs.db') +it('can save programs to database', () => { + let output = content('tests/__data__/output/database/programs.db') + let expected = content('tests/__data__/expected/database/programs.db') - expect(Object.keys(programs[0]).sort()).toEqual([ - '_cid', - '_id', - 'category', - 'channel', - 'description', - 'episode', - 'icon', - 'lang', - 'season', - 'site', - 'start', - 'stop', - 'title' - ]) - - expect(programs[0]).toMatchObject({ - _cid: '0Wefq0oMR3feCcuY' + output = output.map(i => { + i._id = null + return i + }) + expected = expected.map(i => { + i._id = null + return i }) - const channels = content('tests/__data__/output/database/channels.db') + expect(output).toEqual(expected) +}) - expect(Object.keys(channels[0]).sort()).toEqual([ - '_id', - 'channelsPath', - 'cluster_id', - 'configPath', - 'country', - 'groups', - 'lang', - 'logo', - 'name', - 'programCount', - 'site', - 'site_id', - 'xmltv_id' - ]) +it('can update queue', () => { + const output = content('tests/__data__/output/database/queue.db') - expect(channels[1]).toMatchObject({ + expect(output[1]).toMatchObject({ _id: '0Wefq0oMR3feCcuY', - logo: 'https://example.com/logo.png' + programCount: 23 }) +}) - const errors = content('tests/__data__/input/logs/errors.log') +it('can save errors', () => { + const output = content('tests/__data__/input/logs/errors.log') - expect(errors[0]).toMatchObject({ + expect(output[0]).toMatchObject({ _id: '00AluKCrCnfgrl8W', site: 'directv.com', xmltv_id: 'BravoEast.us',