gnome-shell/tests/unit/params.js
Florian Müllner 1778adae0d tests: Add Params.parse() unit tests
Commit 46874eed0 accidentally changed the behavior of the function in
an incompatible way. Before addressing the actual issue, add a reproducer
to the unit tests to hopefully prevent future breakage.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/615
2019-07-05 18:28:26 +02:00

33 lines
740 B
JavaScript

const JsUnit = imports.jsUnit;
const Params = imports.misc.params;
function assertParamsEqual(params, expected) {
for (let p in params) {
JsUnit.assertTrue(p in expected);
JsUnit.assertEquals(params[p], expected[p]);
}
}
let defaults = {
foo: 'This is a test',
bar: null,
baz: 42
};
assertParamsEqual(
Params.parse(null, defaults),
defaults);
assertParamsEqual(
Params.parse({ bar: 23 }, defaults),
{ foo: 'This is a test', bar: 23, baz: 42 });
JsUnit.assertRaises(
() => {
Params.parse({ extraArg: 'quz' }, defaults);
});
assertParamsEqual(
Params.parse({ extraArg: 'quz' }, defaults, true),
{ foo: 'This is a test', bar: null, baz: 42, extraArg: 'quz' });