From 6245942196a7055ae096f2c78df88d87bb1ccfec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Mart=C3=ADn?= Date: Sat, 23 Jun 2018 19:41:17 +0200 Subject: [PATCH 1/5] Don't use jQuery animations in tests. There's a flaky test creating a group for a budget which takes place because toggling a form using jQuery sometimes results in the button not being correctly clicked by Capybara. Checking the page with `expect(page).to have_button 'Create group'` before clicking the button doesn't solve the problem; it looks like in those cases Capybara waits for AJAX requests but not for JavaScript animations. See also issue #2573. --- app/views/layouts/admin.html.erb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/layouts/admin.html.erb b/app/views/layouts/admin.html.erb index 351c04b76..df64a250f 100644 --- a/app/views/layouts/admin.html.erb +++ b/app/views/layouts/admin.html.erb @@ -11,6 +11,7 @@ <%= content_for :head %> <%= csrf_meta_tags %> <%= favicon_link_tag "favicon.ico" %> + <%= javascript_tag "jQuery.fx.off = true" if Rails.env.test? %> From 6e4f697ceadcff7daf6f294c7c291870012a4aab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Mart=C3=ADn?= Date: Sun, 24 Jun 2018 02:40:15 +0200 Subject: [PATCH 2/5] Extract partial with common tags. --- app/views/layouts/_common_head.html.erb | 8 ++++++++ app/views/layouts/admin.html.erb | 9 +-------- app/views/layouts/application.html.erb | 9 +-------- app/views/layouts/devise.html.erb | 9 +-------- app/views/layouts/management.html.erb | 9 +-------- 5 files changed, 12 insertions(+), 32 deletions(-) create mode 100644 app/views/layouts/_common_head.html.erb diff --git a/app/views/layouts/_common_head.html.erb b/app/views/layouts/_common_head.html.erb new file mode 100644 index 000000000..44bf54a2c --- /dev/null +++ b/app/views/layouts/_common_head.html.erb @@ -0,0 +1,8 @@ + + + +<%= content_for?(:title) ? yield(:title) : default_title %> +<%= stylesheet_link_tag "application" %> +<%= javascript_include_tag "application", 'data-turbolinks-track' => true %> +<%= csrf_meta_tags %> +<%= favicon_link_tag "favicon.ico" %> diff --git a/app/views/layouts/admin.html.erb b/app/views/layouts/admin.html.erb index df64a250f..2baf7d3ae 100644 --- a/app/views/layouts/admin.html.erb +++ b/app/views/layouts/admin.html.erb @@ -2,15 +2,8 @@ - - - - <%= content_for?(:title) ? yield(:title) : "Admin" %> - <%= stylesheet_link_tag "application" %> - <%= javascript_include_tag "application", 'data-turbolinks-track' => true %> + <%= render "layouts/common_head", default_title: "Admin" %> <%= content_for :head %> - <%= csrf_meta_tags %> - <%= favicon_link_tag "favicon.ico" %> <%= javascript_tag "jQuery.fx.off = true" if Rails.env.test? %> diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 4ed17ed3d..4e8299d66 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -1,20 +1,13 @@ - - - + <%= render "layouts/common_head", default_title: setting['org_name'] %> <%= render "layouts/tracking_data" %> <%= render "layouts/meta_tags" %> - <%= content_for?(:title) ? yield(:title) : setting['org_name'] %> <%= content_for :canonical %> - <%= stylesheet_link_tag "application" %> - <%= javascript_include_tag "application", 'data-turbolinks-track' => true %> - <%= csrf_meta_tags %> - <%= favicon_link_tag "favicon.ico" %> <%= favicon_link_tag image_path_for("apple-touch-icon-200.png"), rel: "icon apple-touch-icon", sizes: "200x200", diff --git a/app/views/layouts/devise.html.erb b/app/views/layouts/devise.html.erb index 50b84287d..25f36ba0b 100644 --- a/app/views/layouts/devise.html.erb +++ b/app/views/layouts/devise.html.erb @@ -1,15 +1,8 @@ - - - - <%= content_for?(:title) ? yield(:title) : "Gobierno abierto" %> + <%= render "layouts/common_head", default_title: "Gobierno abierto" %> <%= render "layouts/meta_tags" %> - <%= stylesheet_link_tag "application" %> - <%= javascript_include_tag "application", 'data-turbolinks-track' => true %> - <%= csrf_meta_tags %> - <%= favicon_link_tag "favicon.ico" %> diff --git a/app/views/layouts/management.html.erb b/app/views/layouts/management.html.erb index ba1f9f909..4dc4aec12 100644 --- a/app/views/layouts/management.html.erb +++ b/app/views/layouts/management.html.erb @@ -2,16 +2,9 @@ - - - - <%= content_for?(:title) ? yield(:title) : "Management" %> - <%= stylesheet_link_tag "application", media: "all" %> + <%= render "layouts/common_head", default_title: "Management" %> <%= stylesheet_link_tag "print", media: "print" %> - <%= javascript_include_tag "application", 'data-turbolinks-track' => true %> <%= content_for :head %> - <%= csrf_meta_tags %> - <%= favicon_link_tag "favicon.ico" %> From 9198b1af03f4f84462557bd6cdbd5bbf8acd98b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Mart=C3=ADn?= Date: Sun, 24 Jun 2018 02:49:55 +0200 Subject: [PATCH 3/5] Skip jQuery animations in all layouts when testing. --- app/views/layouts/_common_head.html.erb | 1 + app/views/layouts/_no_animations_in_tests.html.erb | 1 + app/views/layouts/admin.html.erb | 1 - 3 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 app/views/layouts/_no_animations_in_tests.html.erb diff --git a/app/views/layouts/_common_head.html.erb b/app/views/layouts/_common_head.html.erb index 44bf54a2c..ef2f8e6f5 100644 --- a/app/views/layouts/_common_head.html.erb +++ b/app/views/layouts/_common_head.html.erb @@ -6,3 +6,4 @@ <%= javascript_include_tag "application", 'data-turbolinks-track' => true %> <%= csrf_meta_tags %> <%= favicon_link_tag "favicon.ico" %> +<%= render "layouts/no_animations_in_tests" if Rails.env.test? %> diff --git a/app/views/layouts/_no_animations_in_tests.html.erb b/app/views/layouts/_no_animations_in_tests.html.erb new file mode 100644 index 000000000..306e16f28 --- /dev/null +++ b/app/views/layouts/_no_animations_in_tests.html.erb @@ -0,0 +1 @@ +<%= javascript_tag "jQuery.fx.off = true" %> diff --git a/app/views/layouts/admin.html.erb b/app/views/layouts/admin.html.erb index 2baf7d3ae..c19d2ac99 100644 --- a/app/views/layouts/admin.html.erb +++ b/app/views/layouts/admin.html.erb @@ -4,7 +4,6 @@ <%= render "layouts/common_head", default_title: "Admin" %> <%= content_for :head %> - <%= javascript_tag "jQuery.fx.off = true" if Rails.env.test? %> From a972e7b978b65c779d2b6b69b8ab7978845d19b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Mart=C3=ADn?= Date: Sun, 24 Jun 2018 02:51:52 +0200 Subject: [PATCH 4/5] Don't use CSS animations when testing. Just like jQuery animations, they can make tests fail when using Capybara. --- app/views/layouts/_no_animations_in_tests.html.erb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/views/layouts/_no_animations_in_tests.html.erb b/app/views/layouts/_no_animations_in_tests.html.erb index 306e16f28..e2df3fe4e 100644 --- a/app/views/layouts/_no_animations_in_tests.html.erb +++ b/app/views/layouts/_no_animations_in_tests.html.erb @@ -1 +1,8 @@ <%= javascript_tag "jQuery.fx.off = true" %> + From 0cf50d81161499d650fd2e40fe275eae5588f30f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Mart=C3=ADn?= Date: Mon, 25 Jun 2018 23:01:11 +0200 Subject: [PATCH 5/5] Rename partial to diable animations in tests. With this name, it's easier to understand what it does. --- app/views/layouts/_common_head.html.erb | 2 +- ..._in_tests.html.erb => _disable_animations_in_tests.html.erb} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename app/views/layouts/{_no_animations_in_tests.html.erb => _disable_animations_in_tests.html.erb} (100%) diff --git a/app/views/layouts/_common_head.html.erb b/app/views/layouts/_common_head.html.erb index ef2f8e6f5..dcd16b704 100644 --- a/app/views/layouts/_common_head.html.erb +++ b/app/views/layouts/_common_head.html.erb @@ -6,4 +6,4 @@ <%= javascript_include_tag "application", 'data-turbolinks-track' => true %> <%= csrf_meta_tags %> <%= favicon_link_tag "favicon.ico" %> -<%= render "layouts/no_animations_in_tests" if Rails.env.test? %> +<%= render "layouts/disable_animations_in_tests" if Rails.env.test? %> diff --git a/app/views/layouts/_no_animations_in_tests.html.erb b/app/views/layouts/_disable_animations_in_tests.html.erb similarity index 100% rename from app/views/layouts/_no_animations_in_tests.html.erb rename to app/views/layouts/_disable_animations_in_tests.html.erb