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.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,
|
||||
args: 'unit/@0@.js'.format(test),
|
||||
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