blob: 7dce03e1692cc8da5a68107a37d5c43b3c922920 [file] [log] [blame] [edit]
/* This file is a part of @mdn/browser-compat-data
* See LICENSE file for more information. */
import assert from 'node:assert/strict';
import { Logger } from '../utils.js';
import test from './test-multiple-statements.js';
describe('test-multiple-statements', () => {
let logger: Logger;
beforeEach(() => {
logger = new Logger('test', 'test');
});
it('should skip processing when data is not an array', () => {
const data = {
support: {
chrome: {
version_added: '1',
version_removed: '2',
},
},
};
test.check(logger, { data });
assert.equal(logger.messages.length, 0);
});
it('should log error when multiple statements for the same key exist', () => {
const data = {
support: { firefox: [{ version_added: '1' }, { version_added: '2' }] },
};
test.check(logger, { data });
assert.equal(logger.messages.length, 1);
assert.ok(logger.messages[0].message.includes('has multiple statements'));
});
it('should not log error when multiple statements for different keys exist', () => {
const data = {
support: {
safari: [
{ version_added: '1', prefix: 'webkit' },
{ version_added: '2', alternative_name: 'webkitFullScreen' },
],
},
};
test.check(logger, { data });
assert.equal(logger.messages.length, 0);
});
it('should ignore statements with partial_implementation, version_removed, or flags', () => {
const data = {
support: {
edge: [
{ version_added: '12', partial_implementation: true },
{ version_added: '14', version_removed: '15' },
{ version_added: '17', flags: [] },
],
},
};
test.check(logger, { data });
assert.equal(logger.messages.length, 0);
});
});