blob: dfb745e21cfe079ee0c8eff5fe506d6e8a2c9b03 [file] [edit]
/* This file is a part of @mdn/browser-compat-data
* See LICENSE file for more information. */
import assert from 'node:assert/strict';
import { removeRedundantFlags } from './remove-redundant-flags.js';
const tests = [
{
input: {
test1: {
__compat: {
support: {
chrome: [
{
version_added: '70',
},
{
version_added: '21',
version_removed: '65',
flags: [
{
type: 'preference',
name: '#service-worker-payment-apps',
value_to_set: 'Enabled',
},
],
},
],
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
output: {
test1: {
__compat: {
support: {
chrome: {
version_added: '70',
},
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
},
{
input: {
test2: {
__compat: {
support: {
chrome: [
{
version_added: '62',
},
{
version_added: '21',
version_removed: '80',
flags: [
{
type: 'preference',
name: '#service-worker-payment-apps',
value_to_set: 'Enabled',
},
],
},
],
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
output: {
test2: {
__compat: {
support: {
chrome: {
version_added: '62',
},
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
},
{
input: {
test3: {
__compat: {
support: {
chrome: [
{
version_added: '62',
},
{
version_added: '21',
flags: [
{
type: 'preference',
name: '#service-worker-payment-apps',
value_to_set: 'Enabled',
},
],
},
],
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
output: {
test3: {
__compat: {
support: {
chrome: {
version_added: '62',
},
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
},
{
input: {
test4: {
__compat: {
support: {
chrome: [
{
version_added: '42',
flags: [
{
type: 'preference',
name: '#enable-experimental-web-features',
value_to_set: 'Enabled',
},
],
},
{
version_added: '21',
version_removed: '45',
flags: [
{
type: 'preference',
name: '#service-worker-payment-apps',
value_to_set: 'Enabled',
},
],
},
],
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
output: {
test4: {
__compat: {
support: {
chrome: {
version_added: '42',
flags: [
{
type: 'preference',
name: '#enable-experimental-web-features',
value_to_set: 'Enabled',
},
],
},
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
},
{
input: {
test5: {
__compat: {
support: {
chrome: {
version_added: '42',
version_removed: '43',
flags: [
{
type: 'preference',
name: '#enable-experimental-web-features',
value_to_set: 'Enabled',
},
],
},
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
output: {
test5: {
__compat: {
support: {
chrome: {
version_added: false,
},
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
},
{
input: {
test6: {
__compat: {
support: {
chrome: [
{
version_added: '80',
},
{
version_added: '21',
version_removed: '80',
flags: [
{
type: 'preference',
name: '#service-worker-payment-apps',
value_to_set: 'Enabled',
},
],
},
],
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
output: {
test6: {
__compat: {
support: {
chrome: {
version_added: '80',
},
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
},
{
input: {
test7: {
__compat: {
support: {
edge: [
{
version_added: '79',
flags: [
{
type: 'preference',
name: 'enable-experimental-web-platform-features',
value_to_set: 'enabled',
},
],
},
{
version_added: '12',
version_removed: '79',
},
],
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
output: {
test7: {
__compat: {
support: {
edge: [
{
version_added: '79',
flags: [
{
type: 'preference',
name: 'enable-experimental-web-platform-features',
value_to_set: 'enabled',
},
],
},
{
version_added: '12',
version_removed: '79',
},
],
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
},
{
input: {
test8: {
__compat: {
support: {
chrome: [
{
version_added: '86',
},
{
version_added: '21',
flags: [
{
type: 'preference',
name: '#service-worker-payment-apps',
value_to_set: 'Enabled',
},
],
},
],
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
output: {
test8: {
__compat: {
support: {
chrome: {
version_added: '86',
},
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
},
];
describe('remove-redundant-flags', () => {
let i = 1;
for (const test of tests) {
it(`Test #${i}`, () => {
const expected = JSON.stringify(test['output'], null, 2);
const output = JSON.stringify(
JSON.parse(JSON.stringify(test['input']), (key, value) =>
removeRedundantFlags(key, value, null),
),
null,
2,
);
assert.deepStrictEqual(expected, output);
});
i += 1;
}
});