summary refs log tree commit diff
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-03-09 10:41:36 -0500
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2023-03-28 22:22:32 -0400
commit7ea341b9b8c0c028476dc09173efefd10e2b5d35 (patch)
tree9a5b6faaa37a69252d510de742c2ead1b66e04da
parent24a058af1b39ed70d45db45c1a6e959d4d20f494 (diff)
downloadguix-7ea341b9b8c0c028476dc09173efefd10e2b5d35.tar.gz
gnu: Add ruby-capybara.
* gnu/packages/ruby.scm (ruby-capybara): New variable.
-rw-r--r--gnu/packages/ruby.scm48
1 files changed, 46 insertions, 2 deletions
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 20285c9f64..9af570b8aa 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -1664,8 +1664,7 @@ code style checking of Capybara test files (RSpec, Cucumber, Minitest).")
   (package
     (inherit ruby-rubocop-capybara-minimal)
     (arguments
-     (list #:tests? #t
-           #:test-target "spec"
+     (list #:test-target "spec"
            #:phases #~(modify-phases %standard-phases
                         (add-after 'unpack 'relax-requirements
                           (lambda _
@@ -11997,6 +11996,51 @@ logging.")
     (home-page "https://github.com/jordansissel/ruby-cabin")
     (license license:asl2.0)))
 
+(define-public ruby-capybara
+  (package
+    (name "ruby-capybara")
+    (version "3.38.0")
+    (source (origin
+              (method url-fetch)
+              (uri (rubygems-uri "capybara" version))
+              (sha256
+               (base32
+                "123198zk2ak8mziwa5jc3ckgpmsg08zn064n3aywnqm9s1bwjv3v"))))
+    (build-system ruby-build-system)
+    (arguments
+     (list #:tests? #f                ;sinatra is currently broken with rack 3
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'extract-gemspec 'remove-extraneous-requirements
+                 (lambda _
+                   (substitute* "spec/spec_helper.rb"
+                     ((".*require 'selenium_statistics'.*") "")
+                     ((".*SeleniumStatistics.print_results.*") ""))))
+               (replace 'check
+                 (lambda* (#:key tests? #:allow-other-keys)
+                   (when tests?
+                     (invoke "rspec" "spec")))))))
+    (native-inputs
+     (list ruby-puma
+           ruby-rspec
+           ruby-selenium-webdriver
+           ruby-sinatra))
+    (propagated-inputs
+     (list ruby-addressable
+           ruby-launchy
+           ruby-matrix
+           ruby-mini-mime
+           ruby-nokogiri
+           ruby-rack
+           ruby-rack-test
+           ruby-regexp-parser
+           ruby-xpath))
+    (synopsis "Integration testing tool for rack-based web applications")
+    (description "Capybara is an integration testing tool for rack based web
+applications.  It simulates how a user would interact with a website.")
+    (home-page "https://github.com/teamcapybara/capybara")
+    (license license:expat)))
+
 (define-public ruby-cane
   (package
     (name "ruby-cane")