tests: Port Params.parse() test to jasmine
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3164>
This commit is contained in:
parent
847b927367
commit
d4ecb0986b
@ -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',
|
||||
|
@ -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'});
|
||||
});
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user