Create channels/validate.test.js

This commit is contained in:
Aleksandr Statciuk
2022-02-28 12:30:38 +03:00
parent 1df9826c2c
commit dc568aee83
3 changed files with 62 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<site site="duplicate.com">
<channels>
<channel lang="en" xmltv_id="CNNInternationalEurope.us" site_id="140">CNN International</channel>
<channel lang="en" xmltv_id="CNNInternationalEurope.us" site_id="140">CNN International</channel>
</channels>
</site>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<site site="wrong_xmltv_id.com">
<channels>
<channel lang="en" xmltv_id="CNNInternational" site_id="140">CNN International</channel>
</channels>
</site>

View File

@@ -0,0 +1,49 @@
const { execSync } = require('child_process')
it('will show a message if the file contains a duplicate', () => {
try {
const stdout = execSync(
'npm run channels:validate -- tests/__data__/input/sites/duplicate.channels.xml',
{
encoding: 'utf8'
}
)
console.log(stdout)
process.exit(1)
} catch (err) {
expect(err.status).toBe(1)
expect(err.stdout).toBe(
`\n> channels:validate\n> node scripts/commands/channels/validate.js "tests/__data__/input/sites/duplicate.channels.xml"\n\ntests/__data__/input/sites/duplicate.channels.xml
┌─────────┬─────────────┬──────┬─────────────────────────────┬─────────┬─────────────────────┐
│ (index) │ type │ lang │ xmltv_id │ site_id │ name │
├─────────┼─────────────┼──────┼─────────────────────────────┼─────────┼─────────────────────┤
│ 0 │ 'duplicate' │ 'en' │ 'CNNInternationalEurope.us' │ '140' │ 'CNN International' │
└─────────┴─────────────┴──────┴─────────────────────────────┴─────────┴─────────────────────┘
\n1 error(s) in 1 file(s)\n`
)
}
})
it('will show a message if the file contains a channel with wrong xmltv_id', () => {
try {
const stdout = execSync(
'npm run channels:validate -- tests/__data__/input/sites/wrong_xmltv_id.channels.xml',
{
encoding: 'utf8'
}
)
console.log(stdout)
process.exit(1)
} catch (err) {
expect(err.status).toBe(1)
expect(err.stdout).toBe(
`\n> channels:validate\n> node scripts/commands/channels/validate.js "tests/__data__/input/sites/wrong_xmltv_id.channels.xml"\n\ntests/__data__/input/sites/wrong_xmltv_id.channels.xml
┌─────────┬──────────────────┬──────┬────────────────────┬─────────┬─────────────────────┐
│ (index) │ type │ lang │ xmltv_id │ site_id │ name │
├─────────┼──────────────────┼──────┼────────────────────┼─────────┼─────────────────────┤
│ 0 │ 'wrong_xmltv_id' │ 'en' │ 'CNNInternational' │ '140' │ 'CNN International' │
└─────────┴──────────────────┴──────┴────────────────────┴─────────┴─────────────────────┘
\n1 error(s) in 1 file(s)\n`
)
}
})