Merge pull request #2680 from iptv-org/patch-2025.02.1

Patch 2025.02.1
This commit is contained in:
Ismaël Moret 2025-02-15 00:43:01 +01:00 committed by GitHub
commit f5623a4485
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 47 additions and 0 deletions

View file

@ -76,6 +76,18 @@ async function main() {
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) {
console.log(`\n${chalk.underline(filepath)}`)
localErrors.forEach((error: ErrorDetail) => {

View file

@ -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>

View 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>

View file

@ -53,4 +53,31 @@ describe('channels:lint', () => {
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)
}
})
})