mirror of https://github.com/iptv-org/iptv
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
const { execSync } = require('child_process')
 | 
						|
const fs = require('fs-extra')
 | 
						|
const path = require('path')
 | 
						|
 | 
						|
beforeEach(() => {
 | 
						|
  fs.emptyDirSync('tests/__data__/output')
 | 
						|
  fs.mkdirSync('tests/__data__/output/database')
 | 
						|
  fs.copyFileSync(
 | 
						|
    'tests/__data__/input/database/db_update.streams.db',
 | 
						|
    'tests/__data__/output/database/streams.db'
 | 
						|
  )
 | 
						|
})
 | 
						|
 | 
						|
it('can save results', () => {
 | 
						|
  const stdout = execSync(
 | 
						|
    'DB_DIR=tests/__data__/output/database LOGS_DIR=tests/__data__/input/logs/cluster/load npm run db:update',
 | 
						|
    { encoding: 'utf8' }
 | 
						|
  )
 | 
						|
  expect(stdout).toEqual(`
 | 
						|
> db:update
 | 
						|
> node scripts/commands/database/update.js
 | 
						|
 | 
						|
loading streams...
 | 
						|
found 8 streams
 | 
						|
loading check results...
 | 
						|
found 6 results
 | 
						|
loading origins...
 | 
						|
found 2 origins
 | 
						|
updating streams...
 | 
						|
updated 6 streams
 | 
						|
removed 1 duplicates
 | 
						|
done
 | 
						|
`)
 | 
						|
 | 
						|
  let input = content('tests/__data__/input/database/db_update.streams.db')
 | 
						|
  let output = content('tests/__data__/output/database/streams.db')
 | 
						|
  let expected = content('tests/__data__/expected/database/db_update.streams.db')
 | 
						|
 | 
						|
  let inputDate = input.find(i => i._id === '2ST8btby3mmsgPF0')['updated_at']
 | 
						|
  let outputDate = output.find(i => i._id === '2ST8btby3mmsgPF0')['updated_at']
 | 
						|
 | 
						|
  expect(outputDate).not.toEqual(inputDate)
 | 
						|
 | 
						|
  output = output.map(i => {
 | 
						|
    delete i['updated_at']
 | 
						|
    return i
 | 
						|
  })
 | 
						|
  expect(output).toEqual(expected)
 | 
						|
})
 | 
						|
 | 
						|
function content(filepath) {
 | 
						|
  const data = fs.readFileSync(path.resolve(filepath), {
 | 
						|
    encoding: 'utf8'
 | 
						|
  })
 | 
						|
 | 
						|
  return data
 | 
						|
    .split('\n')
 | 
						|
    .filter(l => l)
 | 
						|
    .map(l => {
 | 
						|
      return JSON.parse(l)
 | 
						|
    })
 | 
						|
}
 |