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
This commit is contained in:
parent
0d035a4e53
commit
1778adae0d
@ -10,7 +10,7 @@ run_test = configure_file(
|
|||||||
testenv = environment()
|
testenv = environment()
|
||||||
testenv.set('GSETTINGS_SCHEMA_DIR', join_paths(meson.build_root(), 'data'))
|
testenv.set('GSETTINGS_SCHEMA_DIR', join_paths(meson.build_root(), 'data'))
|
||||||
|
|
||||||
foreach test : ['insertSorted', 'jsParse', 'markup', 'url']
|
foreach test : ['insertSorted', 'jsParse', 'markup', 'params', 'url']
|
||||||
test(test, run_test,
|
test(test, run_test,
|
||||||
args: 'unit/@0@.js'.format(test),
|
args: 'unit/@0@.js'.format(test),
|
||||||
env: testenv,
|
env: testenv,
|
||||||
|
32
tests/unit/params.js
Normal file
32
tests/unit/params.js
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
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' });
|
Loading…
Reference in New Issue
Block a user