blob: 0c9de84dc0823260e64eed1300199c6e3ca21e54 [file] [edit]
/* This file is a part of @mdn/browser-compat-data
* See LICENSE file for more information. */
/** @import {InternalIdentifier} from '../../types/index.js' */
import { describe, it } from 'node:test';
import assert from 'node:assert/strict';
import { removeWebViewFlags } from './002-remove-webview-flags.js';
/**
* Objects of each test, with input and expected output
* @type {{ input: InternalIdentifier; output: InternalIdentifier }[]}
*/
const tests = /** @type {*} */ ([
{
input: {
__compat: {
support: {
webview_android: {
version_added: '61',
flags: [
{
type: 'preference',
name: '#service-worker-payment-apps',
value_to_set: 'Enabled',
},
],
},
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
output: {
__compat: {
support: {
webview_android: {
version_added: false,
},
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
{
input: {
__compat: {
support: {
webview_android: {
version_added: true,
},
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
output: {
__compat: {
support: {
webview_android: {
version_added: true,
},
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
{
input: {
__compat: {
support: {
webview_android: [
{
version_added: '40',
flags: [
{
type: 'preference',
name: '#service-worker-payment-apps',
value_to_set: 'Enabled',
},
],
},
{
version_added: '56',
},
],
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
output: {
__compat: {
support: {
webview_android: {
version_added: '56',
},
},
status: {
experimental: true,
standard_track: false,
deprecated: false,
},
},
},
},
]);
describe('migration scripts', () => {
it('`removeWebViewFlags()` works correctly', () => {
for (const test of tests) {
const expected = test.output;
const output = JSON.parse(JSON.stringify(test.input), removeWebViewFlags);
assert.deepEqual(output, expected);
}
});
});