mirror of
https://github.com/iptv-org/epg.git
synced 2025-05-11 09:30:06 -04:00
commit
f5623a4485
4 changed files with 47 additions and 0 deletions
|
@ -76,6 +76,18 @@ async function main() {
|
||||||
localErrors = localErrors.concat(error.details)
|
localErrors = localErrors.concat(error.details)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
xml.split('\n').forEach((line: string, lineIndex: number) => {
|
||||||
|
const found = line.match(/='/)
|
||||||
|
if (found) {
|
||||||
|
const colIndex = found.index || 0
|
||||||
|
localErrors.push({
|
||||||
|
line: lineIndex + 1,
|
||||||
|
col: colIndex + 1,
|
||||||
|
message: 'Single quotes cannot be used in attributes'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
if (localErrors.length) {
|
if (localErrors.length) {
|
||||||
console.log(`\n${chalk.underline(filepath)}`)
|
console.log(`\n${chalk.underline(filepath)}`)
|
||||||
localErrors.forEach((error: ErrorDetail) => {
|
localErrors.forEach((error: ErrorDetail) => {
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version='1.0' encoding="UTF-8"?>
|
||||||
|
<channels>
|
||||||
|
<channel site="singlequotes.com" lang="en" xmltv_id="" site_id="140">Bravo 2</channel>
|
||||||
|
</channels>
|
4
tests/__data__/input/channels-lint/valid.channels.xml
Normal file
4
tests/__data__/input/channels-lint/valid.channels.xml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<channels>
|
||||||
|
<channel site="valid.com" lang="en" xmltv_id="BravoEast.us" site_id="140#Tes't">Bravo's</channel>
|
||||||
|
</channels>
|
|
@ -53,4 +53,31 @@ describe('channels:lint', () => {
|
||||||
expect((error as ExecError).stdout).toContain('2 error(s)')
|
expect((error as ExecError).stdout).toContain('2 error(s)')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('will show a message if the file contains single quotes', () => {
|
||||||
|
try {
|
||||||
|
const cmd =
|
||||||
|
'npm run channels:lint --- tests/__data__/input/channels-lint/single_quotes.channels.xml'
|
||||||
|
const stdout = execSync(cmd, { encoding: 'utf8' })
|
||||||
|
if (process.env.DEBUG === 'true') console.log(cmd, stdout)
|
||||||
|
process.exit(1)
|
||||||
|
} catch (error) {
|
||||||
|
expect((error as ExecError).status).toBe(1)
|
||||||
|
expect((error as ExecError).stdout).toContain('single_quotes.channels.xml')
|
||||||
|
expect((error as ExecError).stdout).toContain(
|
||||||
|
'1:14 Single quotes cannot be used in attributes'
|
||||||
|
)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
it('does not display errors if there are none', () => {
|
||||||
|
try {
|
||||||
|
const cmd = 'npm run channels:lint --- tests/__data__/input/channels-lint/valid.channels.xml'
|
||||||
|
const stdout = execSync(cmd, { encoding: 'utf8' })
|
||||||
|
if (process.env.DEBUG === 'true') console.log(cmd, stdout)
|
||||||
|
} catch (error) {
|
||||||
|
if (process.env.DEBUG === 'true') console.log((error as ExecError).stdout)
|
||||||
|
process.exit(1)
|
||||||
|
}
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue