cartodb-4.42/lib/assets/test/spec/builder/helpers/parser-css.spec.js
2024-04-06 05:25:13 +00:00

65 lines
2.1 KiB
JavaScript

var ParserCSS = require('builder/helpers/parser-css');
describe('helpers/parser-css', function () {
var parser = new ParserCSS();
describe('.parseError', function () {
describe('when the error is a formatted string', function () {
it('returns the error with line and message', function () {
var given = ['style.mss:7:2 Invalid code: Kenobi'];
var expected = [{ line: 7, message: 'Invalid code: Kenobi' }];
expect(parser.parseError(given)).toEqual(expected);
});
});
describe('when the error is not a formatted string', function () {
it('returns the error without line and with message', function () {
var given = ['Do not tell me the odds'];
var expected = [{ line: null, message: 'Do not tell me the odds' }];
expect(parser.parseError(given)).toEqual(expected);
});
});
describe('when the error is an object', function () {
it('returns the same error', function () {
var given = [{ line: 66, message: 'Execute order' }];
expect(parser.parseError(given)).toEqual(given);
});
});
it('returns the errors sorted by line order', function () {
var errors = parser.parseError([
'style.mss:7:2 General Kenobi',
'style.mss:3:2 Hello there',
'this wont have a line number'
]);
expect(errors[0].message).toEqual('this wont have a line number');
expect(errors[1].message).toEqual('Hello there');
expect(errors[2].message).toEqual('General Kenobi');
});
it('removes duplicated errors', function () {
var error = 'style.mss:7:2 You were my brother Anakin';
var parsed = parser.parseError([error, error]);
expect(parsed.length).toBe(1);
});
describe('when the error list is empty', function () {
it('returns an empty array', function () {
expect(parser.parseError([])).toEqual([]);
});
});
describe('when the error list is missing', function () {
it('returns an empty array', function () {
expect(parser.parseError()).toEqual([]);
});
});
});
});