tests: Port Params.parse() test to jasmine

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3164>
This commit is contained in:
Florian Müllner 2024-01-20 08:00:39 +01:00 committed by Marge Bot
parent 847b927367
commit d4ecb0986b
2 changed files with 23 additions and 35 deletions

View File

@ -25,6 +25,7 @@ unit_tests = [
'insertSorted',
'jsParse',
'markup',
'params',
]
foreach test : unit_tests
@ -43,7 +44,6 @@ foreach test : unit_tests
endforeach
legacy_tests = [
'params',
'signalTracker',
'url',
'versionCompare',

View File

@ -1,39 +1,27 @@
const JsUnit = imports.jsUnit;
import * as Params from 'resource:///org/gnome/shell/misc/params.js';
/**
* Asserts that two "param" objects have the same properties
* with the same values.
*
* @param {object} params the parsed params
* @param {object} expected the expected params
*/
function assertParamsEqual(params, expected) {
for (let p in params) {
JsUnit.assertTrue(p in expected);
JsUnit.assertEquals(params[p], expected[p]);
}
}
describe('Params.parse()', () => {
const defaults = {
foo: 'This is a test',
bar: null,
baz: 42,
};
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);
it('applies default values', () => {
expect(Params.parse(null, defaults)).toEqual(defaults);
});
assertParamsEqual(
Params.parse({extraArg: 'quz'}, defaults, true),
{foo: 'This is a test', bar: null, baz: 42, extraArg: 'quz'});
it('applies provided params', () => {
expect(Params.parse({bar: 23}, defaults))
.toEqual({foo: 'This is a test', bar: 23, baz: 42});
});
it('does not allow extra args by default', () => {
expect(() => Params.parse({extraArg: 'quz'}, defaults)).toThrow();
});
it('does allow extra args when requested', () => {
expect(Params.parse({extraArg: 'quz'}, defaults, true))
.toEqual({foo: 'This is a test', bar: null, baz: 42, extraArg: 'quz'});
});
});