pageflow-support 17.1.0 → 17.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/pageflow/dom/editor/edit_configuration_view.rb +8 -2
- data/pageflow/dummy/app.rb +12 -1
- data/pageflow/dummy/rails_template.rb +26 -10
- data/pageflow/dummy/templates/create_test_generated_file.rb +18 -0
- data/pageflow/dummy/templates/favicon.ico +0 -0
- data/pageflow/entries_controller_test_helper.rb +17 -2
- data/pageflow/shared_contexts/fake_translations.rb +1 -0
- data/pageflow/support/config/capybara/selenium_error_patch.rb +36 -0
- data/pageflow/support/config/capybara.rb +3 -0
- data/pageflow/test_generated_file.rb +28 -0
- metadata +15 -25
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f1991e99e5e1c0667011d233f05503e5b772428bd431d908e1a9a949a4e12486
|
|
4
|
+
data.tar.gz: 4ed91c8684d1f5282a0699e0add758cf2559cc9d8b914cdce16863bf05383760
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: da5e455cac7b986e6d382d1a4dd64ff3e7451b29f856733a53ba66ccf0b4fc036bd9b1f0e8bcbc296dec605a70d2973d9c25e1fa2b9769bf96f31a7aa55e66b3
|
|
7
|
+
data.tar.gz: 835d7bcef5a870f4c252fc3b4efff5da7363ec2431f3de3677602a76e5994874e144218e8b9596986126a7905a81e9b5a2413a8d75b866148eb14284c91a632a
|
|
@@ -4,8 +4,14 @@ module Pageflow
|
|
|
4
4
|
class EditConfigurationView < Domino
|
|
5
5
|
selector 'sidebar .edit_configuration_view'
|
|
6
6
|
|
|
7
|
-
def
|
|
8
|
-
node.find('.
|
|
7
|
+
def actions_button
|
|
8
|
+
node.find('.drop_down_button')
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def select_action(label)
|
|
12
|
+
actions_button.click
|
|
13
|
+
Capybara.current_session.find('#editor_menu_container .drop_down_button_item',
|
|
14
|
+
text: label).click
|
|
9
15
|
end
|
|
10
16
|
|
|
11
17
|
def back_button
|
data/pageflow/dummy/app.rb
CHANGED
|
@@ -18,6 +18,17 @@ module Pageflow
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
require(File.join(ENV.fetch('RAILS_ROOT', nil), 'config', 'environment'))
|
|
21
|
+
|
|
22
|
+
load_routes
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Routes are only loaded on demand unless eager loading is
|
|
26
|
+
# enabled. Active Admin defines its controllers while routes are
|
|
27
|
+
# drawn, and specs reference those constants as they are loaded.
|
|
28
|
+
def load_routes
|
|
29
|
+
return unless Rails.application.respond_to?(:reload_routes_unless_loaded)
|
|
30
|
+
|
|
31
|
+
Rails.application.reload_routes_unless_loaded
|
|
21
32
|
end
|
|
22
33
|
|
|
23
34
|
def directory
|
|
@@ -30,7 +41,7 @@ module Pageflow
|
|
|
30
41
|
end
|
|
31
42
|
|
|
32
43
|
def rails_new_options
|
|
33
|
-
result = '--skip-test-unit --skip-bundle --database=mysql'
|
|
44
|
+
result = '--skip-test-unit --skip-bundle --database=mysql --skip-active-storage'
|
|
34
45
|
result << ' --skip-javascript'
|
|
35
46
|
result
|
|
36
47
|
end
|
|
@@ -55,8 +55,12 @@ rake 'shakapacker:install' if ENV['PAGEFLOW_INSTALL_SHAKAPACKER'] == 'true'
|
|
|
55
55
|
|
|
56
56
|
generate 'pageflow:install', '--force'
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
# Invoking a generator that does not exist aborts the template, and not
|
|
59
|
+
# every plugin engine comes with an install generator.
|
|
60
|
+
plugin_engine = ENV['PAGEFLOW_PLUGIN_ENGINE'].presence
|
|
61
|
+
|
|
62
|
+
if plugin_engine && Rails::Generators.find_by_namespace('install', plugin_engine)
|
|
63
|
+
generate "#{plugin_engine}:install", '--force'
|
|
60
64
|
end
|
|
61
65
|
|
|
62
66
|
# Devise needs default_url_options for generating mails.
|
|
@@ -86,6 +90,10 @@ copy_file('test_theme_preview.png',
|
|
|
86
90
|
copy_file('test_theme_preview.png',
|
|
87
91
|
'app/assets/images/pageflow/themes/test_theme/preview_thumbnail.png')
|
|
88
92
|
|
|
93
|
+
# Add fallback favicon used by browsers to prevent console log warnings
|
|
94
|
+
|
|
95
|
+
copy_file('favicon.ico', 'public/favicon.ico', force: true)
|
|
96
|
+
|
|
89
97
|
# Normally theme stylesheets are added to the precompile list
|
|
90
98
|
# automatically. Since the test_theme is not yet registered when the
|
|
91
99
|
# environment is loaded, we need to add its stylesheet manually.
|
|
@@ -96,13 +104,21 @@ RUBY
|
|
|
96
104
|
|
|
97
105
|
# Create database tables for fake hosted files and revision components.
|
|
98
106
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
+
migration_paths = Dir[File.join('db', 'migrate', '*.rb')]
|
|
108
|
+
latest_migration = migration_paths.map { |path| File.basename(path).split('_').first.to_i }.max
|
|
109
|
+
|
|
110
|
+
timestamp = (latest_migration || Time.now.utc.strftime('%Y%m%d%H%M%S').to_i) + 1
|
|
111
|
+
[
|
|
112
|
+
'create_test_uploadable_file.rb',
|
|
113
|
+
'create_test_multi_attachment_file.rb',
|
|
114
|
+
'create_test_generated_file.rb',
|
|
115
|
+
'create_test_revision_components.rb',
|
|
116
|
+
'add_custom_fields.rb'
|
|
117
|
+
].each_with_index do |migration, index|
|
|
118
|
+
copy_file(
|
|
119
|
+
migration,
|
|
120
|
+
format('db/migrate/%<timestamp>014d_%<name>s', timestamp: timestamp + index, name: migration)
|
|
121
|
+
)
|
|
122
|
+
end
|
|
107
123
|
|
|
108
124
|
rake 'db:migrate'
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
class CreateTestGeneratedFile < ActiveRecord::Migration[4.2]
|
|
2
|
+
def change
|
|
3
|
+
create_table :test_generated_files do |t|
|
|
4
|
+
t.belongs_to(:entry, index: true)
|
|
5
|
+
t.belongs_to(:uploader, index: true)
|
|
6
|
+
|
|
7
|
+
t.integer(:parent_file_id)
|
|
8
|
+
t.string(:parent_file_model_type)
|
|
9
|
+
|
|
10
|
+
t.string(:state)
|
|
11
|
+
t.string(:rights)
|
|
12
|
+
|
|
13
|
+
t.string(:url)
|
|
14
|
+
|
|
15
|
+
t.timestamps
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
Binary file
|
|
@@ -32,7 +32,20 @@ module Pageflow
|
|
|
32
32
|
#
|
|
33
33
|
# @param mode [:published|:preview] Whether to render the
|
|
34
34
|
# published revision or the draft.
|
|
35
|
-
|
|
35
|
+
#
|
|
36
|
+
# @param embed [Boolean] Whether the entry is being rendered as an
|
|
37
|
+
# embed.
|
|
38
|
+
#
|
|
39
|
+
# @param ui_locale [Symbol] Locale of the signed in user, i.e. the
|
|
40
|
+
# locale to render user interface displayed on top of the entry
|
|
41
|
+
# in. Not read from `I18n.locale` since entry type controllers
|
|
42
|
+
# are free to change it while rendering.
|
|
43
|
+
def get_with_entry_env(action,
|
|
44
|
+
entry:,
|
|
45
|
+
mode: :published,
|
|
46
|
+
embed: false,
|
|
47
|
+
ui_locale: I18n.default_locale,
|
|
48
|
+
params: {})
|
|
36
49
|
revision =
|
|
37
50
|
if mode == :published
|
|
38
51
|
entry.published_revision
|
|
@@ -43,7 +56,9 @@ module Pageflow
|
|
|
43
56
|
published_entry = PublishedEntry.new(entry, revision)
|
|
44
57
|
EntriesControllerEnvHelper.add_entry_info_to_env(request.env,
|
|
45
58
|
entry: published_entry,
|
|
46
|
-
mode
|
|
59
|
+
mode:,
|
|
60
|
+
embed:,
|
|
61
|
+
ui_locale:)
|
|
47
62
|
get(action, params: {**params})
|
|
48
63
|
end
|
|
49
64
|
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Taken from https://github.com/alphagov/forms-admin/commit/5ea98767d765a396ed06cf2cba8f9afb1b10fc0e#diff-c36c07a0c7f499b1b95634f9dce1a10ebf4d10a9dee872f39f746a9efa555ddbR1-R34
|
|
2
|
+
# Monkey patch for a specific intermittent Selenium error.
|
|
3
|
+
#
|
|
4
|
+
# Intermittently, Selenium/Chromedriver raises `Selenium::WebDriver::Error::UnknownError`
|
|
5
|
+
# with the message "Node with given id does not belong to the document".
|
|
6
|
+
|
|
7
|
+
# Capybara's automatic waiting/retrying mechanism doesn't catch it,
|
|
8
|
+
# leading to failure.
|
|
9
|
+
#
|
|
10
|
+
# We intercept the initialization of `UnknownError`. If the message matches this specific
|
|
11
|
+
# case, we raise a `StaleElementReferenceError` instead. This uses Capybara's
|
|
12
|
+
# retry logic which makes doesn't fail the test
|
|
13
|
+
#
|
|
14
|
+
# This can be removed once the following issue is resolved:
|
|
15
|
+
# https://github.com/teamcapybara/capybara/issues/2800
|
|
16
|
+
#
|
|
17
|
+
# taken from the following issue:
|
|
18
|
+
# https://github.com/teamcapybara/capybara/issues/2800#issuecomment-3049956982
|
|
19
|
+
|
|
20
|
+
module Selenium
|
|
21
|
+
module WebDriver
|
|
22
|
+
module Error
|
|
23
|
+
class UnknownError
|
|
24
|
+
alias old_initialize initialize
|
|
25
|
+
|
|
26
|
+
def initialize(msg = nil)
|
|
27
|
+
if msg&.include?('Node with given id does not belong to the document')
|
|
28
|
+
raise StaleElementReferenceError, msg
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
old_initialize(msg)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -2,6 +2,8 @@ require 'capybara/rspec'
|
|
|
2
2
|
require 'selenium-webdriver'
|
|
3
3
|
require 'capybara/chromedriver/logger'
|
|
4
4
|
|
|
5
|
+
require 'pageflow/support/config/capybara/selenium_error_patch'
|
|
6
|
+
|
|
5
7
|
Capybara.register_driver :selenium_chrome_headless_no_sandbox do |app|
|
|
6
8
|
options = Selenium::WebDriver::Options.chrome(
|
|
7
9
|
logging_prefs: {browser: 'ALL'}
|
|
@@ -9,6 +11,7 @@ Capybara.register_driver :selenium_chrome_headless_no_sandbox do |app|
|
|
|
9
11
|
|
|
10
12
|
options.add_argument('--headless=new')
|
|
11
13
|
options.add_argument('--no-sandbox')
|
|
14
|
+
options.add_argument('--disable-dev-shm-usage')
|
|
12
15
|
options.add_argument('--disable-gpu') if Gem.win_platform?
|
|
13
16
|
|
|
14
17
|
Capybara::Selenium::Driver.new(app,
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module Pageflow
|
|
2
|
+
class TestGeneratedFile < ActiveRecord::Base
|
|
3
|
+
self.table_name = :test_generated_files
|
|
4
|
+
include ReusableFile
|
|
5
|
+
|
|
6
|
+
def retryable?
|
|
7
|
+
false
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def ready?
|
|
11
|
+
true
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def failed?
|
|
15
|
+
false
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def publish!; end
|
|
19
|
+
|
|
20
|
+
def url
|
|
21
|
+
read_attribute(:url)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def original_url
|
|
25
|
+
url
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pageflow-support
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 17.
|
|
4
|
+
version: 17.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Codevise Solutions Ltd
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-09-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: mysql2
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - '='
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 17.
|
|
33
|
+
version: 17.2.0
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - '='
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 17.
|
|
40
|
+
version: 17.2.0
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: domino
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -58,14 +58,14 @@ dependencies:
|
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
61
|
+
version: '6.5'
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
68
|
+
version: '6.5'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: bootsnap
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -122,20 +122,6 @@ dependencies:
|
|
|
122
122
|
- - "~>"
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: '4.10'
|
|
125
|
-
- !ruby/object:Gem::Dependency
|
|
126
|
-
name: ar_after_transaction
|
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
|
128
|
-
requirements:
|
|
129
|
-
- - "~>"
|
|
130
|
-
- !ruby/object:Gem::Version
|
|
131
|
-
version: 0.10.0
|
|
132
|
-
type: :runtime
|
|
133
|
-
prerelease: false
|
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
-
requirements:
|
|
136
|
-
- - "~>"
|
|
137
|
-
- !ruby/object:Gem::Version
|
|
138
|
-
version: 0.10.0
|
|
139
125
|
- !ruby/object:Gem::Dependency
|
|
140
126
|
name: redis
|
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -178,7 +164,7 @@ dependencies:
|
|
|
178
164
|
- - "~>"
|
|
179
165
|
- !ruby/object:Gem::Version
|
|
180
166
|
version: '2.1'
|
|
181
|
-
description:
|
|
167
|
+
description:
|
|
182
168
|
email:
|
|
183
169
|
- info@codevise.de
|
|
184
170
|
executables: []
|
|
@@ -205,10 +191,12 @@ files:
|
|
|
205
191
|
- pageflow/dummy/exit_on_failure_patch.rb
|
|
206
192
|
- pageflow/dummy/rails_template.rb
|
|
207
193
|
- pageflow/dummy/templates/add_custom_fields.rb
|
|
194
|
+
- pageflow/dummy/templates/create_test_generated_file.rb
|
|
208
195
|
- pageflow/dummy/templates/create_test_multi_attachment_file.rb
|
|
209
196
|
- pageflow/dummy/templates/create_test_revision_components.rb
|
|
210
197
|
- pageflow/dummy/templates/create_test_uploadable_file.rb
|
|
211
198
|
- pageflow/dummy/templates/database.yml
|
|
199
|
+
- pageflow/dummy/templates/favicon.ico
|
|
212
200
|
- pageflow/dummy/templates/test_theme.scss
|
|
213
201
|
- pageflow/dummy/templates/test_theme_preview.png
|
|
214
202
|
- pageflow/edit_lock_test_helper.rb
|
|
@@ -226,9 +214,11 @@ files:
|
|
|
226
214
|
- pageflow/shared_contexts/fake_translations.rb
|
|
227
215
|
- pageflow/support.rb
|
|
228
216
|
- pageflow/support/config/capybara.rb
|
|
217
|
+
- pageflow/support/config/capybara/selenium_error_patch.rb
|
|
229
218
|
- pageflow/support/config/paperclip.rb
|
|
230
219
|
- pageflow/support/config/webmock.rb
|
|
231
220
|
- pageflow/test_entry_type.rb
|
|
221
|
+
- pageflow/test_generated_file.rb
|
|
232
222
|
- pageflow/test_page_type.rb
|
|
233
223
|
- pageflow/test_uploadable_file.rb
|
|
234
224
|
- pageflow/test_widget_type.rb
|
|
@@ -237,7 +227,7 @@ homepage: https://pageflow.io
|
|
|
237
227
|
licenses: []
|
|
238
228
|
metadata:
|
|
239
229
|
rubygems_mfa_required: 'true'
|
|
240
|
-
post_install_message:
|
|
230
|
+
post_install_message:
|
|
241
231
|
rdoc_options: []
|
|
242
232
|
require_paths:
|
|
243
233
|
- "."
|
|
@@ -252,8 +242,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
252
242
|
- !ruby/object:Gem::Version
|
|
253
243
|
version: '0'
|
|
254
244
|
requirements: []
|
|
255
|
-
rubygems_version: 3.4.
|
|
256
|
-
signing_key:
|
|
245
|
+
rubygems_version: 3.4.19
|
|
246
|
+
signing_key:
|
|
257
247
|
specification_version: 4
|
|
258
248
|
summary: Spec support for Pageflow extensions.
|
|
259
249
|
test_files: []
|