bruno/packages/bruno-lang/v2/tests/envToJson.spec.js

118 lines
2.1 KiB
JavaScript

const parser = require("../src/envToJson");
describe("env parser", () => {
it("should parse empty vars", () => {
const input = `
vars {
}`;
const output = parser(input);
const expected = {
"variables": []
};
expect(output).toEqual(expected);
});
it("should parse single var line", () => {
const input = `
vars {
url: http://localhost:3000
}`;
const output = parser(input);
const expected = {
"variables": [{
"name": "url",
"value": "http://localhost:3000",
"enabled" : true,
}]
};
expect(output).toEqual(expected);
});
it("should parse multiple var lines", () => {
const input = `
vars {
url: http://localhost:3000
port: 3000
~token: secret
}`;
const output = parser(input);
const expected = {
"variables": [{
"name": "url",
"value": "http://localhost:3000",
"enabled" : true
}, {
"name": "port",
"value": "3000",
"enabled" : true
}, {
"name": "token",
"value": "secret",
"enabled" : false
}]
};
expect(output).toEqual(expected);
});
it("should gracefully handle empty lines and spaces", () => {
const input = `
vars {
url: http://localhost:3000
port: 3000
}
`;
const output = parser(input);
const expected = {
"variables": [{
"name": "url",
"value": "http://localhost:3000",
"enabled" : true,
}, {
"name": "port",
"value": "3000",
"enabled" : true,
}]
};
expect(output).toEqual(expected);
});
it("should parse vars with empty values", () => {
const input = `
vars {
url:
phone:
api-key:
}
`;
const output = parser(input);
const expected = {
"variables": [{
"name": "url",
"value": "",
"enabled" : true,
}, {
"name": "phone",
"value": "",
"enabled" : true,
}, {
"name": "api-key",
"value": "",
"enabled" : true,
}]
};
expect(output).toEqual(expected);
});
});