decidim-dev 0.8.4 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +4 -4
  3. data/Rakefile +4 -0
  4. data/config/locales/ca.yml +11 -1
  5. data/config/locales/en.yml +11 -0
  6. data/config/locales/es.yml +11 -1
  7. data/config/locales/eu.yml +11 -0
  8. data/config/locales/fi.yml +11 -0
  9. data/config/locales/fr.yml +11 -0
  10. data/config/locales/gl.yml +20 -0
  11. data/config/locales/it.yml +11 -0
  12. data/config/locales/nl.yml +11 -0
  13. data/config/locales/pl.yml +11 -0
  14. data/config/locales/pt-BR.yml +20 -0
  15. data/config/locales/pt.yml +12 -1
  16. data/config/locales/ru.yml +13 -2
  17. data/config/locales/sv.yml +20 -0
  18. data/config/locales/uk.yml +13 -2
  19. data/lib/decidim/dev/assets/dni.jpg +0 -0
  20. data/lib/decidim/dev/test/base_spec_helper.rb +1 -0
  21. data/lib/decidim/dev/test/rspec_support/action_mailer.rb +1 -3
  22. data/lib/decidim/dev/test/rspec_support/authorization.rb +1 -0
  23. data/lib/decidim/dev/test/rspec_support/capybara.rb +18 -16
  24. data/lib/decidim/dev/test/rspec_support/capybara_scopes_picker.rb +101 -0
  25. data/lib/decidim/dev/test/rspec_support/comments.rb +1 -1
  26. data/lib/decidim/dev/test/rspec_support/content_processing.rb +35 -0
  27. data/lib/decidim/dev/test/rspec_support/feature.rb +10 -0
  28. data/lib/decidim/dev/test/rspec_support/feature_context.rb +1 -2
  29. data/lib/decidim/dev/test/rspec_support/helpers.rb +1 -1
  30. data/lib/decidim/dev/test/rspec_support/warden.rb +2 -2
  31. data/lib/decidim/dev/test/spec_helper.rb +1 -3
  32. data/lib/decidim/dev/version.rb +1 -1
  33. data/lib/tasks/locale_checker.rake +1 -1
  34. metadata +31 -49
  35. data/lib/decidim/dev/test/rspec_support/capybara_select2.rb +0 -21
  36. data/lib/decidim/dev/test/rspec_support/database_cleaner.rb +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 49572dcec29c1214a9003e32d0f066270eb2838a
4
- data.tar.gz: 3bf052274cf01e5fc87c3aaee5ae81ba87b5a0aa
2
+ SHA256:
3
+ metadata.gz: c31826791567d8986287675d486e7ffdaac2b052c58365aadf44a70223c789ef
4
+ data.tar.gz: 26a3fdb6c68d20de68763b968a46800b8d02e11bd8b9762107d44ede87362774
5
5
  SHA512:
6
- metadata.gz: 3d399e72ca54497616eb5692ddbabed3cb1463f6213b06cbc0d9e47f3aef61b3ea7b89e5bf29a7d8120799baeff671aee40d3e9657bc2bb0d903959ef627982d
7
- data.tar.gz: fde8f55177973f2b079b761c46a9f30c10effd01815047af532986d438db713a967225e47e15647847a572b00aa862c76d5112f6b3d7d2944b7c9f66661b03db
6
+ metadata.gz: 99217abfc8280bf20fab22dbbf2109b7c3dee8b8281216e052a811ad64b3605d93100a7c57343553f2d753035c3eb2e1ab11001bd22b13a7f327f6383fc768c8
7
+ data.tar.gz: 5d633c5f54a89d0f75401c531abedeef574db211777365739b70231ae0c53eb2cbcbf9cc92397beba51b52a3f46387a894439a01bb0641f107486b60a580392f
data/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # Decidim::Dev
2
2
 
3
- This gem allows local development of decidim's features and other features.
3
+ This module allows local development of decidim's features and other features.
4
4
 
5
5
  ## Usage
6
6
 
7
7
  `decidim-dev` provides some testing utils such as shared contexts, examples, and
8
- dummy assets or resources that you can use to test your own plugins. It also
9
- provides a `decidim:generate_external_test_app` rake task that you can use to
10
- generate a dummy application to test your plugin.
8
+ dummy assets or resources that you can use to test your own modules. It also
9
+ provides a `decidim:generate_external_test_app` rails task that you can use to
10
+ generate a dummy application to test your module.
11
11
 
12
12
  ## Installation
13
13
 
data/Rakefile CHANGED
@@ -1,3 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "bundler/gem_tasks"
4
+
5
+ task :default do
6
+ puts "No default task defined yet."
7
+ end
@@ -1,10 +1,20 @@
1
- ---
2
1
  ca:
3
2
  decidim:
4
3
  dummy:
5
4
  admin:
6
5
  exports:
7
6
  dummies: Maniquins
7
+ participatory_processes:
8
+ statistics:
9
+ dummies_count_high: Prova alt
10
+ dummies_count_medium: Prova mig
8
11
  resource_links:
9
12
  test_link:
10
13
  dummy_resource_dummy: Fictici relacionat
14
+ pages:
15
+ home:
16
+ statistics:
17
+ bar: Bar
18
+ dummies_count_high: Prova alt
19
+ dummies_count_medium: Prova mig
20
+ foo: Foo
@@ -5,6 +5,17 @@ en:
5
5
  admin:
6
6
  exports:
7
7
  dummies: Dummies
8
+ participatory_processes:
9
+ statistics:
10
+ dummies_count_high: Dummies high
11
+ dummies_count_medium: Dummies medium
8
12
  resource_links:
9
13
  test_link:
10
14
  dummy_resource_dummy: Related dummy
15
+ pages:
16
+ home:
17
+ statistics:
18
+ bar: Bar
19
+ dummies_count_high: Dummies high
20
+ dummies_count_medium: Dummies medium
21
+ foo: Foo
@@ -1,10 +1,20 @@
1
- ---
2
1
  es:
3
2
  decidim:
4
3
  dummy:
5
4
  admin:
6
5
  exports:
7
6
  dummies: Maniquíes
7
+ participatory_processes:
8
+ statistics:
9
+ dummies_count_high: Dummies alta
10
+ dummies_count_medium: Dummies media
8
11
  resource_links:
9
12
  test_link:
10
13
  dummy_resource_dummy: Ficticio relacionado
14
+ pages:
15
+ home:
16
+ statistics:
17
+ bar: Bar
18
+ dummies_count_high: Dummies alta
19
+ dummies_count_medium: Dummies media
20
+ foo: Foo
@@ -4,6 +4,17 @@ eu:
4
4
  admin:
5
5
  exports:
6
6
  dummies: Manikiak
7
+ participatory_processes:
8
+ statistics:
9
+ dummies_count_high: Dummies altua
10
+ dummies_count_medium: Dummies ertainak
7
11
  resource_links:
8
12
  test_link:
9
13
  dummy_resource_dummy: ' Honi buruzko adibidea '
14
+ pages:
15
+ home:
16
+ statistics:
17
+ bar: Bar
18
+ dummies_count_high: Dummies altua
19
+ dummies_count_medium: Dummies ertainak
20
+ foo: foo
@@ -4,6 +4,17 @@ fi:
4
4
  admin:
5
5
  exports:
6
6
  dummies: Esimerkkitiedot
7
+ participatory_processes:
8
+ statistics:
9
+ dummies_count_high: Esimerkkitilastojen korkein arvo
10
+ dummies_count_medium: Esimerkkitilastojen keskimääräinen arvo
7
11
  resource_links:
8
12
  test_link:
9
13
  dummy_resource_dummy: Liittyvät esimerkkitiedot
14
+ pages:
15
+ home:
16
+ statistics:
17
+ bar: Palkki
18
+ dummies_count_high: Esimerkkitilastojen korkein arvo
19
+ dummies_count_medium: Esimerkkitilastojen keskimääräinen arvo
20
+ foo: Foo
@@ -4,6 +4,17 @@ fr:
4
4
  admin:
5
5
  exports:
6
6
  dummies: Nuls
7
+ participatory_processes:
8
+ statistics:
9
+ dummies_count_high: Dummies haute
10
+ dummies_count_medium: Dummies moyen
7
11
  resource_links:
8
12
  test_link:
9
13
  dummy_resource_dummy: Référence factice concernée
14
+ pages:
15
+ home:
16
+ statistics:
17
+ bar: Machin
18
+ dummies_count_high: Dummies haute
19
+ dummies_count_medium: Dummies moyen
20
+ foo: Truc
@@ -0,0 +1,20 @@
1
+ gl:
2
+ decidim:
3
+ dummy:
4
+ admin:
5
+ exports:
6
+ dummies: Dummies
7
+ participatory_processes:
8
+ statistics:
9
+ dummies_count_high: Maniquís de alta
10
+ dummies_count_medium: Dummies medio
11
+ resource_links:
12
+ test_link:
13
+ dummy_resource_dummy: Dummy relacionado
14
+ pages:
15
+ home:
16
+ statistics:
17
+ bar: Bar
18
+ dummies_count_high: Maniquís de alta
19
+ dummies_count_medium: Dummies medio
20
+ foo: Foo
@@ -4,6 +4,17 @@ it:
4
4
  admin:
5
5
  exports:
6
6
  dummies: Risorse Fittizie
7
+ participatory_processes:
8
+ statistics:
9
+ dummies_count_high: Manichini in alto
10
+ dummies_count_medium: Manichino medio
7
11
  resource_links:
8
12
  test_link:
9
13
  dummy_resource_dummy: Risorse fittizie correlate
14
+ pages:
15
+ home:
16
+ statistics:
17
+ bar: Bar
18
+ dummies_count_high: Manichini in alto
19
+ dummies_count_medium: Manichino medio
20
+ foo: foo
@@ -4,6 +4,17 @@ nl:
4
4
  admin:
5
5
  exports:
6
6
  dummies: Dummies
7
+ participatory_processes:
8
+ statistics:
9
+ dummies_count_high: Dummies hoog
10
+ dummies_count_medium: Dummies medium
7
11
  resource_links:
8
12
  test_link:
9
13
  dummy_resource_dummy: Gerelateerde dummy
14
+ pages:
15
+ home:
16
+ statistics:
17
+ bar: Bar
18
+ dummies_count_high: Dummies hoog
19
+ dummies_count_medium: Dummies medium
20
+ foo: Foo
@@ -4,6 +4,17 @@ pl:
4
4
  admin:
5
5
  exports:
6
6
  dummies: Manekiny
7
+ participatory_processes:
8
+ statistics:
9
+ dummies_count_high: Atrapy wysokie
10
+ dummies_count_medium: Średni manekin
7
11
  resource_links:
8
12
  test_link:
9
13
  dummy_resource_dummy: Podobne manekina
14
+ pages:
15
+ home:
16
+ statistics:
17
+ bar: Bar
18
+ dummies_count_high: Atrapy wysokie
19
+ dummies_count_medium: Średni manekin
20
+ foo: bla
@@ -0,0 +1,20 @@
1
+ pt-BR:
2
+ decidim:
3
+ dummy:
4
+ admin:
5
+ exports:
6
+ dummies: Manequim
7
+ participatory_processes:
8
+ statistics:
9
+ dummies_count_high: Dummies alta
10
+ dummies_count_medium: Dummies médio
11
+ resource_links:
12
+ test_link:
13
+ dummy_resource_dummy: Manequim relacionado
14
+ pages:
15
+ home:
16
+ statistics:
17
+ bar: Barra
18
+ dummies_count_high: Dummies alta
19
+ dummies_count_medium: Dummies médio
20
+ foo: Foo
@@ -3,7 +3,18 @@ pt:
3
3
  dummy:
4
4
  admin:
5
5
  exports:
6
- dummies: Bobos
6
+ dummies: Manequim
7
+ participatory_processes:
8
+ statistics:
9
+ dummies_count_high: Dummies alta
10
+ dummies_count_medium: Dummies médio
7
11
  resource_links:
8
12
  test_link:
9
13
  dummy_resource_dummy: Manequim relacionado
14
+ pages:
15
+ home:
16
+ statistics:
17
+ bar: Barra
18
+ dummies_count_high: Dummies alta
19
+ dummies_count_medium: Dummies médio
20
+ foo: Foo
@@ -3,7 +3,18 @@ ru:
3
3
  dummy:
4
4
  admin:
5
5
  exports:
6
- dummies: Нерабочие псевдо-части
6
+ dummies: Примеры сохранения
7
+ participatory_processes:
8
+ statistics:
9
+ dummies_count_high: Пример наибольшего количества
10
+ dummies_count_medium: Пример среднего количества
7
11
  resource_links:
8
12
  test_link:
9
- dummy_resource_dummy: Связанный нерабочий псевдо-ресурс
13
+ dummy_resource_dummy: Пример соотносящегося ресурса
14
+ pages:
15
+ home:
16
+ statistics:
17
+ bar: Пример переменной 1
18
+ dummies_count_high: Пример наибольшего количества
19
+ dummies_count_medium: Пример среднего количества
20
+ foo: Пример переменной 2
@@ -0,0 +1,20 @@
1
+ sv:
2
+ decidim:
3
+ dummy:
4
+ admin:
5
+ exports:
6
+ dummies: Dummies
7
+ participatory_processes:
8
+ statistics:
9
+ dummies_count_high: Dummies höga
10
+ dummies_count_medium: Dummies medium
11
+ resource_links:
12
+ test_link:
13
+ dummy_resource_dummy: Relaterad dummy
14
+ pages:
15
+ home:
16
+ statistics:
17
+ bar: Bar
18
+ dummies_count_high: Dummies höga
19
+ dummies_count_medium: Dummies medium
20
+ foo: foo
@@ -3,7 +3,18 @@ uk:
3
3
  dummy:
4
4
  admin:
5
5
  exports:
6
- dummies: Неробочі псевдо-частини
6
+ dummies: Приклади збереження
7
+ participatory_processes:
8
+ statistics:
9
+ dummies_count_high: Приклад найвищої кількості
10
+ dummies_count_medium: Приклад середньої кількості
7
11
  resource_links:
8
12
  test_link:
9
- dummy_resource_dummy: Пов'язана неробоча псевдо-частина
13
+ dummy_resource_dummy: Приклад пов'язаного ресурсу
14
+ pages:
15
+ home:
16
+ statistics:
17
+ bar: Приклад змінної 1
18
+ dummies_count_high: Приклад найвищої кількості
19
+ dummies_count_medium: Приклад середньої кількості
20
+ foo: Приклад змінної 2
Binary file
@@ -20,6 +20,7 @@ require "rails"
20
20
  require "active_support/core_ext/string"
21
21
  require "decidim/core"
22
22
  require "decidim/core/test"
23
+ require "decidim/admin/test"
23
24
 
24
25
  require_relative "rspec_support/feature.rb"
25
26
  require_relative "rspec_support/authorization.rb"
@@ -42,9 +42,7 @@ module MailerHelpers
42
42
  options[:max_attempts] ||= 3
43
43
  attempts = 0
44
44
  loop do
45
- if attempts >= options[:max_attempts]
46
- raise StandardError, "An email with subject containing '#{options[:subject]}' wasn't sent.'"
47
- end
45
+ raise StandardError, "An email with subject containing '#{options[:subject]}' wasn't sent.'" if attempts >= options[:max_attempts]
48
46
 
49
47
  return if last_email&.subject&.include? options[:subject]
50
48
 
@@ -20,6 +20,7 @@ end
20
20
 
21
21
  Decidim::Verifications.register_workflow(:dummy_authorization_workflow) do |workflow|
22
22
  workflow.engine = Decidim::Verifications::DummyVerification::Engine
23
+ workflow.expires_in = 1.hour
23
24
  end
24
25
 
25
26
  RSpec.configure do |config|
@@ -1,15 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "selenium-webdriver"
4
- require "capybara-screenshot/rspec"
5
4
 
6
5
  module Decidim
7
6
  # Helpers meant to be used only during capybara test runs.
8
7
  module CapybaraTestHelpers
9
8
  def switch_to_host(host = "lvh.me")
10
- unless /lvh\.me$/.match?(host)
11
- raise "Can't switch to a custom host unless it really exists. Use `whatever.lvh.me` as a workaround."
12
- end
9
+ raise "Can't switch to a custom host unless it really exists. Use `whatever.lvh.me` as a workaround." unless /lvh\.me$/.match?(host)
13
10
 
14
11
  app_host = (host ? "http://#{host}" : nil)
15
12
  Capybara.app_host = app_host
@@ -46,30 +43,35 @@ module Capybara
46
43
  def wait_for_pending_requests
47
44
  Timeout.timeout(120) { sleep(0.01) while pending_requests? }
48
45
  rescue Timeout::Error
49
- raise "Requests did not finish in 60 seconds"
46
+ raise "Requests did not finish in 120 seconds"
50
47
  end
51
48
  end
52
49
  end
53
50
 
54
- Capybara::Screenshot.prune_strategy = :keep_last_run
55
- Capybara::Screenshot::RSpec.add_link_to_screenshot_for_failed_examples = true
56
-
57
- Capybara::Screenshot.register_driver(:headless_chrome) do |driver, path|
58
- driver.browser.save_screenshot(path)
59
- end
60
-
61
51
  Capybara.configure do |config|
62
52
  config.always_include_port = true
63
- config.default_driver = :headless_chrome
64
53
  end
65
54
 
66
55
  Capybara.asset_host = "http://localhost:3000"
67
56
 
68
57
  RSpec.configure do |config|
69
- config.before :each, type: :feature do
70
- Capybara.current_session.driver.reset!
58
+ config.before :each, type: :system do
59
+ driven_by(:headless_chrome)
71
60
  switch_to_default_host
72
61
  end
73
62
 
74
- config.include Decidim::CapybaraTestHelpers, type: :feature
63
+ config.before :each, driver: :rack_test do
64
+ driven_by(:rack_test)
65
+ end
66
+
67
+ config.around :each, :slow do |example|
68
+ max_wait_time_for_slow_specs = 7
69
+
70
+ using_wait_time(max_wait_time_for_slow_specs) do
71
+ example.run
72
+ end
73
+ end
74
+
75
+ config.include Decidim::CapybaraTestHelpers, type: :system
76
+ config.include Devise::Test::IntegrationHelpers, type: :system
75
77
  end
@@ -0,0 +1,101 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capybara
4
+ module ScopesPicker
5
+ def scopes_picker_find(id, multiple: nil, global_value: "")
6
+ Struct.new(:data_picker, :global_value).new(data_picker_find(id, multiple: multiple), global_value)
7
+ end
8
+
9
+ RSpec::Matchers.define :have_scope_picked do |expected|
10
+ match do |scope_picker|
11
+ data_picker = scope_picker.data_picker
12
+ scope_name = expected ? translated(expected.name) : I18n.t("decidim.scopes.global")
13
+ expect(data_picker).to have_selector(".picker-values div input[value='#{expected&.id || scope_picker.global_value}']", visible: false)
14
+ expect(data_picker).to have_selector(:xpath, "//div[contains(@class,'picker-values')]/div/a[text()[contains(.,'#{scope_name}')]]")
15
+ end
16
+ end
17
+
18
+ RSpec::Matchers.define :have_scope_not_picked do |expected|
19
+ match do |scope_picker|
20
+ data_picker = scope_picker.data_picker
21
+ scope_name = expected ? translated(expected.name) : I18n.t("decidim.scopes.global")
22
+ expect(data_picker).not_to have_selector(".picker-values div input[value='#{expected&.id || scope_picker.global_value}']", visible: false)
23
+ expect(data_picker).not_to have_selector(:xpath, "//div[contains(@class,'picker-values')]/div/a[text()[contains(.,'#{scope_name}')]]")
24
+ end
25
+ end
26
+
27
+ def scope_pick(scope_picker, scope)
28
+ data_picker = scope_picker.data_picker
29
+ # use scope_repick to change single scope picker selected scope
30
+ expect(data_picker).to have_selector(".picker-values:empty", visible: false) if data_picker.has_css?(".picker-single")
31
+
32
+ expect(data_picker).to have_selector(".picker-prompt")
33
+ data_picker.find(".picker-prompt").click
34
+
35
+ scope_picker_browse_scopes(scope.part_of_scopes) if scope
36
+ scope_picker_pick_current
37
+
38
+ expect(scope_picker).to have_scope_picked(scope)
39
+ end
40
+
41
+ def scope_repick(scope_picker, old_scope, new_scope)
42
+ data_picker = scope_picker.data_picker
43
+
44
+ expect(data_picker).to have_selector(".picker-values div input[value='#{old_scope&.id || scope_picker.global_value}']", visible: false)
45
+ data_picker.find(:xpath, "//div[contains(@class,'picker-values')]/div/input[@value='#{old_scope&.id || scope_picker.global_value}']/../a").click
46
+
47
+ # browse to lowest common parent between old and new scope
48
+ parent_scope = (old_scope.part_of_scopes & new_scope.part_of_scopes).last
49
+
50
+ scope_picker_browse_scope(parent_scope, back: true)
51
+ scope_picker_browse_scopes(new_scope.part_of_scopes - old_scope.part_of_scopes)
52
+ scope_picker_pick_current
53
+
54
+ expect(scope_picker).to have_scope_picked(new_scope)
55
+ end
56
+
57
+ def scope_unpick(scope_picker, scope)
58
+ data_picker = scope_picker.data_picker
59
+
60
+ expect(data_picker).to have_selector(".picker-values div input[value='#{scope&.id || scope_picker.global_value}']", visible: false)
61
+ data_picker.find(".picker-values div input[value='#{scope&.id || scope_picker.global_value}']").click
62
+
63
+ expect(scope_picker).to have_scope_not_picked(scope)
64
+ end
65
+
66
+ private
67
+
68
+ def data_picker_find(id, multiple: nil)
69
+ if multiple.nil?
70
+ expect(page).to have_selector("div.data-picker##{id}")
71
+ else
72
+ expect(page).to have_selector("div.data-picker.picker-#{multiple ? "multiple" : "single"}##{id}")
73
+ end
74
+ find("div.data-picker##{id}")
75
+ end
76
+
77
+ def scope_picker_browse_scopes(scopes)
78
+ scopes.each do |scope|
79
+ scope_picker_browse_scope(scope)
80
+ end
81
+ end
82
+
83
+ def scope_picker_browse_scope(scope, back: false)
84
+ body = find(:xpath, "//body")
85
+ where = back ? "header" : "content"
86
+ scope_name = scope ? translated(scope.name) : I18n.t("decidim.scopes.global")
87
+ expect(body).to have_selector("#data_picker-modal .picker-#{where} a", text: scope_name)
88
+ body.find("#data_picker-modal .picker-#{where} a", text: scope_name).click
89
+ end
90
+
91
+ def scope_picker_pick_current
92
+ body = find(:xpath, "//body")
93
+ expect(body).to have_selector("#data_picker-modal .picker-footer a[data-picker-choose]")
94
+ body.find("#data_picker-modal .picker-footer a[data-picker-choose]").click
95
+ end
96
+ end
97
+ end
98
+
99
+ RSpec.configure do |config|
100
+ config.include Capybara::ScopesPicker, type: :system
101
+ end
@@ -15,5 +15,5 @@ module CommentsHelpers
15
15
  end
16
16
 
17
17
  RSpec.configure do |config|
18
- config.include CommentsHelpers, type: :feature
18
+ config.include CommentsHelpers, type: :system
19
19
  end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ class ContentParsers::DummyFooParser < ContentParsers::BaseParser
5
+ def rewrite
6
+ content.gsub("foo", "*lorem*")
7
+ end
8
+
9
+ def metadata
10
+ content.scan("foo").size
11
+ end
12
+ end
13
+
14
+ class ContentRenderers::DummyFooRenderer < ContentRenderers::BaseRenderer
15
+ def render
16
+ content.gsub("*lorem*", "<em>neque dicta enim quasi</em>")
17
+ end
18
+ end
19
+
20
+ class ContentParsers::DummyBarParser < ContentParsers::BaseParser
21
+ def rewrite
22
+ content.gsub("bar", "*ipsum*")
23
+ end
24
+
25
+ def metadata
26
+ content.scan("bar").size
27
+ end
28
+ end
29
+
30
+ class ContentRenderers::DummyBarRenderer < ContentRenderers::BaseRenderer
31
+ def render
32
+ content.gsub("*ipsum*", "<em>illo qui voluptas</em>")
33
+ end
34
+ end
35
+ end
@@ -42,6 +42,7 @@ module Decidim
42
42
  include Decidim::Comments::Commentable
43
43
  include Followable
44
44
  include Traceable
45
+ include Publicable
45
46
 
46
47
  feature_manifest_name "dummy"
47
48
 
@@ -105,6 +106,14 @@ Decidim.register_feature(:dummy) do |feature|
105
106
  resource.template = "decidim/dummy_resource/linked_dummys"
106
107
  end
107
108
 
109
+ feature.register_stat :dummies_count_high, primary: true, priority: Decidim::StatsRegistry::HIGH_PRIORITY do |features, _start_at, _end_at|
110
+ features.count * 10
111
+ end
112
+
113
+ feature.register_stat :dummies_count_medium, primary: true, priority: Decidim::StatsRegistry::MEDIUM_PRIORITY do |features, _start_at, _end_at|
114
+ features.count * 100
115
+ end
116
+
108
117
  feature.exports :dummies do |exports|
109
118
  exports.collection do
110
119
  [1, 2, 3]
@@ -123,6 +132,7 @@ RSpec.configure do |config|
123
132
  t.text :address
124
133
  t.float :latitude
125
134
  t.float :longitude
135
+ t.datetime :published_at
126
136
 
127
137
  t.references :decidim_feature, index: true
128
138
  t.references :decidim_author, index: true
@@ -71,8 +71,7 @@ shared_context "when managing a feature as a process admin" do
71
71
  include_context "when managing a feature"
72
72
 
73
73
  let(:user) do
74
- create :user,
75
- :process_admin,
74
+ create :process_admin,
76
75
  :confirmed,
77
76
  organization: organization,
78
77
  participatory_process: participatory_process
@@ -42,5 +42,5 @@ module Decidim::FeatureTestHelpers
42
42
  end
43
43
 
44
44
  RSpec.configure do |config|
45
- config.include Decidim::FeatureTestHelpers, type: :feature
45
+ config.include Decidim::FeatureTestHelpers, type: :system
46
46
  end
@@ -17,10 +17,10 @@ module Decidim
17
17
  end
18
18
 
19
19
  RSpec.configure do |config|
20
- config.include Decidim::WardenTestHelpers, type: :feature
20
+ config.include Decidim::WardenTestHelpers, type: :system
21
21
  config.include Devise::Test::ControllerHelpers, type: :controller
22
22
 
23
- config.after :each, type: :feature do
23
+ config.after :each, type: :system do
24
24
  Warden.test_reset!
25
25
  end
26
26
  end
@@ -5,7 +5,6 @@ ENV["RAILS_ENV"] ||= "test"
5
5
  require "rails-controller-testing"
6
6
  require "rspec/rails"
7
7
  require "factory_bot_rails"
8
- require "database_cleaner"
9
8
  require "byebug"
10
9
  require "cancan/matchers"
11
10
  require "rectify/rspec"
@@ -27,9 +26,8 @@ RSpec.configure do |config|
27
26
  # If you're not using ActiveRecord, or you'd prefer not to run each of your
28
27
  # examples within a transaction, comment the following line or assign false
29
28
  # instead of true.
30
- config.use_transactional_fixtures = false
29
+ config.use_transactional_fixtures = true
31
30
 
32
31
  config.include TranslationHelpers
33
32
  config.include Rectify::RSpec::Helpers
34
- config.include Capybara::Select2
35
33
  end
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-dev version.
5
5
  module Dev
6
6
  def self.version
7
- "0.8.4"
7
+ "0.9.0"
8
8
  end
9
9
  end
10
10
  end
@@ -12,7 +12,7 @@ namespace :decidim do
12
12
  Dir.chdir("tmp/decidim_repo") do
13
13
  env = { "ENFORCED_LOCALES" => Decidim.available_locales.join(",") }
14
14
 
15
- Bundler.with_clean_env do
15
+ Bundler.with_original_env do
16
16
  system(env, "bundle install")
17
17
  system(env, "bundle exec rspec spec/i18n_spec.rb")
18
18
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-dev
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.4
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-01-16 00:00:00.000000000 Z
13
+ date: 2018-02-05 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: capybara
@@ -26,48 +26,20 @@ dependencies:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
28
  version: '2.15'
29
- - !ruby/object:Gem::Dependency
30
- name: capybara-screenshot
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - "~>"
34
- - !ruby/object:Gem::Version
35
- version: '1.0'
36
- type: :runtime
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - "~>"
41
- - !ruby/object:Gem::Version
42
- version: '1.0'
43
- - !ruby/object:Gem::Dependency
44
- name: database_cleaner
45
- requirement: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: '1.6'
50
- type: :runtime
51
- prerelease: false
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - "~>"
55
- - !ruby/object:Gem::Version
56
- version: '1.6'
57
29
  - !ruby/object:Gem::Dependency
58
30
  name: decidim
59
31
  requirement: !ruby/object:Gem::Requirement
60
32
  requirements:
61
33
  - - '='
62
34
  - !ruby/object:Gem::Version
63
- version: 0.8.4
35
+ version: 0.9.0
64
36
  type: :runtime
65
37
  prerelease: false
66
38
  version_requirements: !ruby/object:Gem::Requirement
67
39
  requirements:
68
40
  - - '='
69
41
  - !ruby/object:Gem::Version
70
- version: 0.8.4
42
+ version: 0.9.0
71
43
  - !ruby/object:Gem::Dependency
72
44
  name: factory_bot_rails
73
45
  requirement: !ruby/object:Gem::Requirement
@@ -86,16 +58,16 @@ dependencies:
86
58
  name: byebug
87
59
  requirement: !ruby/object:Gem::Requirement
88
60
  requirements:
89
- - - ">="
61
+ - - "~>"
90
62
  - !ruby/object:Gem::Version
91
- version: '0'
63
+ version: '10.0'
92
64
  type: :runtime
93
65
  prerelease: false
94
66
  version_requirements: !ruby/object:Gem::Requirement
95
67
  requirements:
96
- - - ">="
68
+ - - "~>"
97
69
  - !ruby/object:Gem::Version
98
- version: '0'
70
+ version: '10.0'
99
71
  - !ruby/object:Gem::Dependency
100
72
  name: codecov
101
73
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +100,14 @@ dependencies:
128
100
  name: i18n-tasks
129
101
  requirement: !ruby/object:Gem::Requirement
130
102
  requirements:
131
- - - '='
103
+ - - "~>"
132
104
  - !ruby/object:Gem::Version
133
105
  version: 0.9.18
134
106
  type: :runtime
135
107
  prerelease: false
136
108
  version_requirements: !ruby/object:Gem::Requirement
137
109
  requirements:
138
- - - '='
110
+ - - "~>"
139
111
  - !ruby/object:Gem::Version
140
112
  version: 0.9.18
141
113
  - !ruby/object:Gem::Dependency
@@ -228,28 +200,34 @@ dependencies:
228
200
  requirements:
229
201
  - - "~>"
230
202
  - !ruby/object:Gem::Version
231
- version: 0.51.0
203
+ version: 0.52.1
232
204
  type: :runtime
233
205
  prerelease: false
234
206
  version_requirements: !ruby/object:Gem::Requirement
235
207
  requirements:
236
208
  - - "~>"
237
209
  - !ruby/object:Gem::Version
238
- version: 0.51.0
210
+ version: 0.52.1
239
211
  - !ruby/object:Gem::Dependency
240
212
  name: rubocop-rspec
241
213
  requirement: !ruby/object:Gem::Requirement
242
214
  requirements:
243
215
  - - "~>"
244
216
  - !ruby/object:Gem::Version
245
- version: '1.20'
217
+ version: '1.21'
218
+ - - "<"
219
+ - !ruby/object:Gem::Version
220
+ version: '1.22'
246
221
  type: :runtime
247
222
  prerelease: false
248
223
  version_requirements: !ruby/object:Gem::Requirement
249
224
  requirements:
250
225
  - - "~>"
251
226
  - !ruby/object:Gem::Version
252
- version: '1.20'
227
+ version: '1.21'
228
+ - - "<"
229
+ - !ruby/object:Gem::Version
230
+ version: '1.22'
253
231
  - !ruby/object:Gem::Dependency
254
232
  name: selenium-webdriver
255
233
  requirement: !ruby/object:Gem::Requirement
@@ -298,14 +276,14 @@ dependencies:
298
276
  requirements:
299
277
  - - "~>"
300
278
  - !ruby/object:Gem::Version
301
- version: 0.0.3
279
+ version: '1.0'
302
280
  type: :runtime
303
281
  prerelease: false
304
282
  version_requirements: !ruby/object:Gem::Requirement
305
283
  requirements:
306
284
  - - "~>"
307
285
  - !ruby/object:Gem::Version
308
- version: 0.0.3
286
+ version: '1.0'
309
287
  description: Utilities and tools we need to develop Decidim
310
288
  email:
311
289
  - josepjaume@gmail.com
@@ -325,11 +303,14 @@ files:
325
303
  - config/locales/eu.yml
326
304
  - config/locales/fi.yml
327
305
  - config/locales/fr.yml
306
+ - config/locales/gl.yml
328
307
  - config/locales/it.yml
329
308
  - config/locales/nl.yml
330
309
  - config/locales/pl.yml
310
+ - config/locales/pt-BR.yml
331
311
  - config/locales/pt.yml
332
312
  - config/locales/ru.yml
313
+ - config/locales/sv.yml
333
314
  - config/locales/uk.yml
334
315
  - lib/decidim/dev.rb
335
316
  - lib/decidim/dev/assets/Exampledocument.pdf
@@ -337,6 +318,7 @@ files:
337
318
  - lib/decidim/dev/assets/city.jpeg
338
319
  - lib/decidim/dev/assets/city2.jpeg
339
320
  - lib/decidim/dev/assets/city3.jpeg
321
+ - lib/decidim/dev/assets/dni.jpg
340
322
  - lib/decidim/dev/assets/icon.png
341
323
  - lib/decidim/dev/assets/id.jpg
342
324
  - lib/decidim/dev/assets/malicious.jpg
@@ -350,9 +332,9 @@ files:
350
332
  - lib/decidim/dev/test/rspec_support/attachments.rb
351
333
  - lib/decidim/dev/test/rspec_support/authorization.rb
352
334
  - lib/decidim/dev/test/rspec_support/capybara.rb
353
- - lib/decidim/dev/test/rspec_support/capybara_select2.rb
335
+ - lib/decidim/dev/test/rspec_support/capybara_scopes_picker.rb
354
336
  - lib/decidim/dev/test/rspec_support/comments.rb
355
- - lib/decidim/dev/test/rspec_support/database_cleaner.rb
337
+ - lib/decidim/dev/test/rspec_support/content_processing.rb
356
338
  - lib/decidim/dev/test/rspec_support/factory_bot.rb
357
339
  - lib/decidim/dev/test/rspec_support/feature.rb
358
340
  - lib/decidim/dev/test/rspec_support/feature_context.rb
@@ -380,7 +362,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
380
362
  requirements:
381
363
  - - ">="
382
364
  - !ruby/object:Gem::Version
383
- version: 2.3.1
365
+ version: '2.3'
384
366
  required_rubygems_version: !ruby/object:Gem::Requirement
385
367
  requirements:
386
368
  - - ">="
@@ -388,8 +370,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
388
370
  version: '0'
389
371
  requirements: []
390
372
  rubyforge_project:
391
- rubygems_version: 2.6.13
373
+ rubygems_version: 2.7.3
392
374
  signing_key:
393
375
  specification_version: 4
394
- summary: Decidim Dev tools
376
+ summary: Decidim dev tools
395
377
  test_files: []
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Capybara
4
- module Select2
5
- def select2(value, from:)
6
- expect(page).to have_xpath("//select[@id='#{from}']/..")
7
- select2_container = find(:xpath, "//select[@id='#{from}']/..")
8
-
9
- expect(select2_container).to have_selector(".select2-selection")
10
- select2_container.find(".select2-selection").click
11
-
12
- expect(page).to have_no_content("Searching...")
13
-
14
- body = find(:xpath, "//body")
15
- expect(body).to have_selector(".select2-dropdown li.select2-results__option", text: value)
16
-
17
- body.find(".select2-dropdown li.select2-results__option", text: value).click
18
- expect(page).to have_select(from, with_options: [value])
19
- end
20
- end
21
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.configure do |config|
4
- config.before(:suite) do
5
- DatabaseCleaner.strategy = :truncation
6
- DatabaseCleaner.clean_with :truncation
7
- end
8
-
9
- config.around(:each) do |example|
10
- DatabaseCleaner.cleaning do
11
- example.run
12
- end
13
- end
14
- end