From cb837029a08e4e63f3e6a1b0a20876f43f8d72b2 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Thu, 9 Mar 2023 11:58:41 -0500 Subject: gnu: ruby-actionpack: Update to 7.0.4.3 and enable test suite. * gnu/packages/rails.scm (ruby-actionpack): Update to 7.0.4.3. [source]: Use ruby-rails-monorepo. [arguments]: Delete #:tests? argument. Add #:phases argument. [native-inputs]: New field. [propagated-inputs]: Add ruby-rack-cache and ruby-rack-session. --- gnu/packages/rails.scm | 106 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 81 insertions(+), 25 deletions(-) (limited to 'gnu/packages/rails.scm') diff --git a/gnu/packages/rails.scm b/gnu/packages/rails.scm index bff4e09264..d3712a93c9 100644 --- a/gnu/packages/rails.scm +++ b/gnu/packages/rails.scm @@ -468,32 +468,88 @@ (define-public ruby-actionview (define-public ruby-actionpack (package - (name "ruby-actionpack") - (version "6.1.3") - (source - (origin - (method url-fetch) - (uri (rubygems-uri "actionpack" version)) - (sha256 - (base32 - "030yyaskzlic5cp4d9zbwwr3rhf4k6hsls44a7ihsfd6r8mlivq5")))) - (build-system ruby-build-system) - (arguments - '(;; No included tests - #:tests? #f)) - (propagated-inputs - (list ruby-actionview - ruby-activesupport - ruby-rack - ruby-rack-test - ruby-rails-dom-testing - ruby-rails-html-sanitizer)) - (synopsis "Conventions for building and testing MVC web applications") - (description - "ActionPack provides conventions for building and testing MVC web + (name "ruby-actionpack") + (version %ruby-rails-version) + (source ruby-rails-monorepo) + (build-system ruby-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'extract-gemspec 'chdir + (lambda _ + (chdir "actionpack"))) + (add-before 'check 'delete-problematic-tests + (lambda _ + (let-syntax ((skip-tests + (syntax-rules () + ((_ file test ...) + (substitute* file + ;; ActiveSupport test case. + (((string-append "test \"" test "\".*") all) + (string-append + all " skip 'fails on guix'\n")) ... + ;; MiniTest test case. + (((string-append "def " test ".*") all) + (string-append + all " skip('fails on guix')\n")) ...))))) + + (with-directory-excursion "test" + (for-each delete-file + ;; These tests depend on rails, which depends on + ;; this package. + '("dispatch/mount_test.rb" + "dispatch/prefix_generation_test.rb" + "dispatch/routing_assertions_test.rb" + "dispatch/routing/inspector_test.rb" + "controller/live_stream_test.rb" + "controller/integration_test.rb" + "controller/test_case_test.rb")) + + ;; The following test failures have been reported upstream + ;; (see: https://github.com/rails/rails/issues/47615). + (skip-tests "controller/new_base/render_streaming_test.rb" + ;; These tests fail due to white space + ;; characters in the compared strings. + "rendering with streaming no layout" + "rendering with streaming enabled at the \ +class level" + "rendering with streaming given to render" + "rendering with layout exception" + "rendering with template exception" + "rendering with streaming do not override \ +explicit cache control given to render") + + (skip-tests "dispatch/system_testing/driver_test.rb" + ;; These tests require Firefox. + "define extra capabilities using headless_firefox" + "define extra capabilities using firefox") + + (skip-tests "dispatch/session/cache_store_test.rb" + ;; This test fails with: "NoMethodError: + ;; undefined method `hash_for' for + ;; #". + "test_getting_session_value_after_session_reset")))))))) + (native-inputs + (list ruby-activemodel + ruby-capybara + ruby-selenium-webdriver + ruby-zeitwerk)) + (propagated-inputs + (list ruby-actionview + ruby-activesupport + ruby-rack + ruby-rack-cache + ruby-rack-session + ruby-rack-test + ruby-rails-dom-testing + ruby-rails-html-sanitizer)) + (synopsis "Conventions for building and testing MVC web applications") + (description + "ActionPack provides conventions for building and testing MVC web applications. These work with any Rack-compatible server.") - (home-page "https://rubyonrails.org/") - (license license:expat))) + (home-page "https://rubyonrails.org/") + (license license:expat))) (define-public ruby-actioncable (package -- cgit v1.2.3