diff options
author | Judson <nyarly@gmail.com> | 2017-05-03 20:27:42 -0700 |
---|---|---|
committer | Judson <nyarly@gmail.com> | 2017-05-03 20:27:42 -0700 |
commit | 66fed6d28f70263f6a4105e6e8504742618932cb (patch) | |
tree | 8d8de9512cc89c211442cb25881afcebe3761eee /pkgs/development/ruby-modules/bundler-env/test.nix | |
parent | 2b414e1c1553c1ff678d172f99da227670b8f68e (diff) | |
download | nixpkgs-66fed6d28f70263f6a4105e6e8504742618932cb.tar nixpkgs-66fed6d28f70263f6a4105e6e8504742618932cb.tar.gz nixpkgs-66fed6d28f70263f6a4105e6e8504742618932cb.tar.bz2 nixpkgs-66fed6d28f70263f6a4105e6e8504742618932cb.tar.lz nixpkgs-66fed6d28f70263f6a4105e6e8504742618932cb.tar.xz nixpkgs-66fed6d28f70263f6a4105e6e8504742618932cb.tar.zst nixpkgs-66fed6d28f70263f6a4105e6e8504742618932cb.zip |
Basically working. Checking against actual use cases.
Diffstat (limited to 'pkgs/development/ruby-modules/bundler-env/test.nix')
-rw-r--r-- | pkgs/development/ruby-modules/bundler-env/test.nix | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/pkgs/development/ruby-modules/bundler-env/test.nix b/pkgs/development/ruby-modules/bundler-env/test.nix index 3f77eb1fb43..cb06d1012d2 100644 --- a/pkgs/development/ruby-modules/bundler-env/test.nix +++ b/pkgs/development/ruby-modules/bundler-env/test.nix @@ -1,9 +1,17 @@ +/* +Run with: +nix-build -E 'with import <nixpkgs> { }; callPackage ./test.nix {}' --show-trace; and cat result + +Confusingly, the ideal result ends with something like: +error: build of ‘/nix/store/3245f3dcl2wxjs4rci7n069zjlz8qg85-test-results.tap.drv’ failed +*/ { writeText, lib, ruby, defaultGemConfig, callPackage }: let test = import ./testing.nix; tap = import ./tap-support.nix; bundlerEnv = callPackage ./default.nix {}; + basicEnv = callPackage ./basic.nix {}; testConfigs = { groups = ["default"]; @@ -22,6 +30,18 @@ let 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}] have [${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}'"); }; justName = bundlerEnv { @@ -29,9 +49,12 @@ let gemset = ./test/gemset.nix; }; - pnamed = bundlerEnv { + pnamed = basicEnv { pname = "test"; + gemdir = ./test; gemset = ./test/gemset.nix; + gemfile = ./test/Gemfile; + lockfile = ./test/Gemfile.lock; }; results = builtins.concatLists [ @@ -40,10 +63,14 @@ let name = should.equal "test"; }) (test.run "bundlerEnv { pname }" pnamed - { - name = should.equal "test-0.1.2"; - env = should.beASet; - }) + [ + (should.haveKeys [ "name" "env" "postBuild" ]) + { + name = should.equal "test-0.1.2"; + env = should.beASet; + postBuild = should.havePrefix "nananana"; + } + ]) ]; in writeText "test-results.tap" (tap.output results) |