forked from extern/bruno
139 lines
2.4 KiB
JavaScript
139 lines
2.4 KiB
JavaScript
/**
|
|
* This test file is used to test the text parser.
|
|
*/
|
|
|
|
const parser = require("../src/bruToJson");
|
|
|
|
const assertSingleHeader = (input) => {
|
|
const output = parser(input);
|
|
|
|
const expected = {
|
|
"headers": [{
|
|
"name": "hello",
|
|
"value": "world",
|
|
"enabled": true
|
|
}]
|
|
};
|
|
expect(output).toEqual(expected);
|
|
};
|
|
|
|
describe("headers parser", () => {
|
|
it("should parse empty header", () => {
|
|
const input = `
|
|
headers {
|
|
}`;
|
|
|
|
const output = parser(input);
|
|
const expected = {
|
|
"headers": []
|
|
};
|
|
expect(output).toEqual(expected);
|
|
});
|
|
|
|
it("should parse single header", () => {
|
|
const input = `
|
|
headers {
|
|
hello: world
|
|
}`;
|
|
|
|
assertSingleHeader(input);
|
|
});
|
|
|
|
it("should parse single header with spaces", () => {
|
|
const input = `
|
|
headers {
|
|
hello: world
|
|
}`;
|
|
|
|
assertSingleHeader(input);
|
|
});
|
|
|
|
it("should parse single header with spaces and newlines", () => {
|
|
const input = `
|
|
headers {
|
|
|
|
hello: world
|
|
|
|
|
|
}`;
|
|
|
|
assertSingleHeader(input);
|
|
});
|
|
|
|
it("should parse single header with empty value", () => {
|
|
const input = `
|
|
headers {
|
|
hello:
|
|
}`;
|
|
|
|
const output = parser(input);
|
|
const expected = {
|
|
"headers": [{
|
|
"name": "hello",
|
|
"value": "",
|
|
"enabled": true
|
|
}]
|
|
};
|
|
expect(output).toEqual(expected);
|
|
});
|
|
|
|
it("should parse multi headers", () => {
|
|
const input = `
|
|
headers {
|
|
content-type: application/json
|
|
Authorization: JWT secret
|
|
}`;
|
|
|
|
const output = parser(input);
|
|
const expected = {
|
|
"headers": [{
|
|
"name": "content-type",
|
|
"value": "application/json",
|
|
"enabled": true
|
|
}, {
|
|
"name": "Authorization",
|
|
"value": "JWT secret",
|
|
"enabled": true
|
|
}]
|
|
};
|
|
expect(output).toEqual(expected);
|
|
});
|
|
|
|
it("should parse disabled headers", () => {
|
|
const input = `
|
|
headers:disabled {
|
|
content-type: application/json
|
|
}`;
|
|
|
|
const output = parser(input);
|
|
const expected = {
|
|
"headers": [{
|
|
"name": "content-type",
|
|
"value": "application/json",
|
|
"enabled": false
|
|
}]
|
|
};
|
|
expect(output).toEqual(expected);
|
|
});
|
|
|
|
it("should throw error on invalid header", () => {
|
|
const input = `
|
|
headers {
|
|
hello: world
|
|
foo
|
|
}`;
|
|
|
|
expect(() => parser(input)).toThrow();
|
|
});
|
|
|
|
it("should throw error on invalid header", () => {
|
|
const input = `
|
|
headers {
|
|
hello: world
|
|
foo: bar}`;
|
|
|
|
expect(() => parser(input)).toThrow();
|
|
});
|
|
});
|
|
|