about summary refs log tree commit diff
path: root/pkgs/development/ruby-modules/testing/assertions.nix
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2017-07-29 13:08:11 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2017-07-29 13:08:11 +0200
commitb2608b891062dcc95e50f00c304b297a727adf97 (patch)
tree8b5c8773a75724455e3b67cb563ea84b0f9ec5e5 /pkgs/development/ruby-modules/testing/assertions.nix
parent55357de67a2acfb11ba1a3633454c20acc9b54e7 (diff)
parent140f47eb748f9b24a77fa40a1f1ffd2376a24b81 (diff)
downloadnixlib-b2608b891062dcc95e50f00c304b297a727adf97.tar
nixlib-b2608b891062dcc95e50f00c304b297a727adf97.tar.gz
nixlib-b2608b891062dcc95e50f00c304b297a727adf97.tar.bz2
nixlib-b2608b891062dcc95e50f00c304b297a727adf97.tar.lz
nixlib-b2608b891062dcc95e50f00c304b297a727adf97.tar.xz
nixlib-b2608b891062dcc95e50f00c304b297a727adf97.tar.zst
nixlib-b2608b891062dcc95e50f00c304b297a727adf97.zip
Merge remote-tracking branch 'upstream/master' into HEAD
Diffstat (limited to 'pkgs/development/ruby-modules/testing/assertions.nix')
-rw-r--r--pkgs/development/ruby-modules/testing/assertions.nix28
1 files changed, 28 insertions, 0 deletions
diff --git a/pkgs/development/ruby-modules/testing/assertions.nix b/pkgs/development/ruby-modules/testing/assertions.nix
new file mode 100644
index 000000000000..f28cfcd508d4
--- /dev/null
+++ b/pkgs/development/ruby-modules/testing/assertions.nix
@@ -0,0 +1,28 @@
+{ test, lib, ...}:
+{
+  equal = expected: actual:
+    if actual == expected then
+      (test.passed "= ${toString expected}") else
+      (test.failed (
+      "expected '${toString expected}'(${builtins.typeOf expected})"
+      + " !=  "+
+      "actual '${toString actual}'(${builtins.typeOf actual})"
+      ));
+
+  beASet = actual:
+    if builtins.isAttrs actual then
+      (test.passed "is a set") else
+      (test.failed "is not a set, was ${builtins.typeOf actual}: ${toString actual}");
+
+  haveKeys = expected: actual:
+    if builtins.all
+    (ex: builtins.any (ac: ex == ac) (builtins.attrNames actual))
+    expected then
+      (test.passed "has expected keys") else
+      (test.failed "keys differ: expected: [${lib.concatStringsSep ";" expected}] actual: [${lib.concatStringsSep ";" (builtins.attrNames actual)}]");
+
+  havePrefix = expected: actual:
+    if lib.hasPrefix expected actual then
+      (test.passed "has prefix '${expected}'") else
+      (test.failed "prefix '${expected}' not found in '${actual}'");
+}