diff options
author | Joe Hermaszewski <git@monoid.al> | 2020-11-11 10:36:19 +0800 |
---|---|---|
committer | Peter Simons <simons@cryp.to> | 2020-11-13 21:37:57 +0100 |
commit | c3b35f21f78a3d23aaf40b70fe8865598ddc6729 (patch) | |
tree | cb243bc900a386be28cb73dd437f8f7aaa44cc97 /lib/tests/misc.nix | |
parent | bacdeffd804c1da6700d2ab424cf2b74ca7e5355 (diff) |
lib: Add composeManyExtensions
Diffstat (limited to 'lib/tests/misc.nix')
-rw-r--r-- | lib/tests/misc.nix | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix index 6175f15819a76..35a5801c724fe 100644 --- a/lib/tests/misc.nix +++ b/lib/tests/misc.nix @@ -87,6 +87,26 @@ runTests { expected = true; }; + testComposeManyExtensions0 = { + expr = let obj = makeExtensible (self: { foo = true; }); + emptyComposition = composeManyExtensions []; + composed = obj.extend emptyComposition; + in composed.foo; + expected = true; + }; + + testComposeManyExtensions = + let f = self: super: { bar = false; baz = true; }; + g = self: super: { bar = super.baz or false; }; + h = self: super: { qux = super.bar or false; }; + obj = makeExtensible (self: { foo = self.qux; }); + in { + expr = let composition = composeManyExtensions [f g h]; + composed = obj.extend composition; + in composed.foo; + expected = (obj.extend (composeExtensions f (composeExtensions g h))).foo; + }; + testBitAnd = { expr = (bitAnd 3 10); expected = 2; |