| Server IP : 82.148.16.210 / Your IP : 216.73.217.139 Web Server : nginx/1.29.5 System : Linux mail.sarafai.ru 6.1.0-43-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.162-1 (2026-02-08) x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /srv/projects/env4/src/dev/frontend3/node_modules/table/node_modules/ajv-cli/test/ |
Upload File : |
import cli from "./cli"
import assert = require("assert")
import type {DefinedError} from "ajv"
describe("test", function () {
this.timeout(10000)
describe("test valid data", () => {
it("should pass if expected result is valid", (done) => {
cli("test -s test/schema -d test/valid_data --valid", (error, stdout, stderr) => {
assert.strictEqual(error, null)
assertNoErrors(stdout, 1, /\spassed/)
assert.strictEqual(stderr, "")
done()
})
})
it("should pass multiple files if expected result is valid", (done) => {
cli('test -s test/schema -d "test/valid*.json" --valid', (error, stdout, stderr) => {
assert.strictEqual(error, null)
assertNoErrors(stdout, 2, /\spassed/)
assert.strictEqual(stderr, "")
done()
})
})
it("should fail if expected result is invalid", (done) => {
cli("test -s test/schema -d test/valid_data --invalid", (error, stdout, stderr) => {
assert(error instanceof Error)
assertNoErrors(stderr, 1, /\sfailed/)
assert.strictEqual(stdout, "")
done()
})
})
it("should fail multiple files if expected result is invalid", (done) => {
cli('test -s test/schema -d "test/valid*.json" --invalid', (error, stdout, stderr) => {
assert(error instanceof Error)
assertNoErrors(stderr, 2, /\sfailed/)
assert.strictEqual(stdout, "")
done()
})
})
})
describe("test invalid data", () => {
it("should pass if expected result is invalid", (done) => {
cli(
"test -s test/schema -d test/invalid_data --invalid --errors=line",
(error, stdout, stderr) => {
assert.strictEqual(error, null)
assertRequiredErrors(stdout, 1, /\spassed/)
assert.strictEqual(stderr, "")
done()
}
)
})
it("should pass if expected result is invalid (valid=false)", (done) => {
cli(
"test -s test/schema -d test/invalid_data --valid=false --errors=line",
(error, stdout, stderr) => {
assert.strictEqual(error, null)
assertRequiredErrors(stdout, 1, /\spassed/)
assert.strictEqual(stderr, "")
done()
}
)
})
it("should pass multiple files if expected result is invalid", (done) => {
cli(
'test -s test/schema -d "test/invalid*.json" --invalid --errors=line',
(error, stdout, stderr) => {
assert.strictEqual(error, null)
assertRequiredErrors(stdout, 2, /\spassed/)
assert.strictEqual(stderr, "")
done()
}
)
})
it("should fail if expected result is valid", (done) => {
cli(
"test -s test/schema -d test/invalid_data --valid --errors=line",
(error, stdout, stderr) => {
assert(error instanceof Error)
assertRequiredErrors(stderr, 1, /\sfailed/)
assert.strictEqual(stdout, "")
done()
}
)
})
it("should fail multiple files if expected result is valid", (done) => {
cli(
'test -s test/schema -d "test/invalid*.json" --valid --errors=line',
(error, stdout, stderr) => {
assert(error instanceof Error)
assertRequiredErrors(stderr, 2, /\sfailed/)
assert.strictEqual(stdout, "")
done()
}
)
})
})
describe("test valid and invalid data", () => {
it("should pass valid, fail invalid and return error if expected result is valid", (done) => {
cli(
"test -s test/schema -d test/valid_data -d test/invalid_data --valid --errors=line",
(error, stdout, stderr) => {
assert(error instanceof Error)
assertNoErrors(stdout, 1, /\spassed/)
assertRequiredErrors(stderr, 1, /\sfailed/)
done()
}
)
})
it("should fail valid, pass invalid and return error if expected result is invalid", (done) => {
cli(
"test -s test/schema -d test/valid_data -d test/invalid_data --invalid --errors=line",
(error, stdout, stderr) => {
assert(error instanceof Error)
assertNoErrors(stderr, 1, /\sfailed/)
assertRequiredErrors(stdout, 1, /\spassed/)
done()
}
)
})
})
})
function assertNoErrors(out: string, count: number, regexp: RegExp): void {
const lines = out.split("\n")
assert.strictEqual(lines.length, count + 1)
for (let i = 0; i < count; i++) assert(regexp.test(lines[i]))
}
function assertErrors(out: string, count: number, regexp: RegExp): DefinedError[][] {
const lines = out.split("\n")
assert.strictEqual(lines.length, count * 2 + 1)
const results: DefinedError[][] = []
for (let i = 0; i < count; i += 2) {
assert(regexp.test(lines[i]))
results.push(JSON.parse(lines[i + 1]))
}
return results
}
function assertRequiredErrors(out: string, count: number, regexp: RegExp, schemaRef = "#"): void {
const results = assertErrors(out, count, regexp)
results.forEach((errors) => {
const err = errors[0]
assert.strictEqual(err.keyword, "required")
assert.strictEqual(err.instancePath, "/0/dimensions")
assert.strictEqual(err.schemaPath, schemaRef + "/items/properties/dimensions/required")
assert.deepStrictEqual(err.params, {missingProperty: "height"})
})
}