From d4ecb0986bbf7f63ad6153ad42681c0d7823db7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 20 Jan 2024 08:00:39 +0100 Subject: [PATCH] tests: Port Params.parse() test to jasmine Part-of: --- tests/meson.build | 2 +- tests/unit/params.js | 56 +++++++++++++++++--------------------------- 2 files changed, 23 insertions(+), 35 deletions(-) diff --git a/tests/meson.build b/tests/meson.build index ef66ba835..c14914c7f 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -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', diff --git a/tests/unit/params.js b/tests/unit/params.js index 2edb019d1..d25e8cd3c 100644 --- a/tests/unit/params.js +++ b/tests/unit/params.js @@ -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'}); + }); +});