pageflow-support 17.0.5 → 17.1.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/admin/page.rb +3 -3
- data/pageflow/dummy/app.rb +2 -2
- data/pageflow/dummy/rails_template.rb +8 -8
- data/pageflow/edit_lock_test_helper.rb +1 -1
- data/pageflow/editor_controller_test_helper.rb +1 -1
- data/pageflow/entries_controller_test_helper.rb +1 -1
- data/pageflow/global_config_api_test_helper.rb +1 -0
- data/pageflow/lint/file_import.rb +5 -6
- data/pageflow/lint/file_type.rb +4 -4
- data/pageflow/lint.rb +8 -8
- data/pageflow/matchers/have_meta_tag.rb +1 -1
- data/pageflow/render_page_test_helper.rb +2 -2
- data/pageflow/shared_contexts/fake_translations.rb +1 -1
- data/pageflow/support/config/capybara.rb +2 -1
- metadata +23 -23
- data/pageflow/json_test_helper.rb +0 -46
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fae97a40f99f97bb513360d66bfbedf7690ad711fbe8f581458c024a13e48a67
|
4
|
+
data.tar.gz: 282ce32027ab5526b097d9c9db77e93b96af878aa7f1db8a5d8761b3c98b9b61
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc7ff0c1d01152030e4930fb7f6269d153d7f1994c63616e10abaf8e471b83cc419b9a48e0413ac2ed69ecd0ae9838b80a57711b087bc9f1657dbcc9fd81a96b
|
7
|
+
data.tar.gz: 007be4ed862864dda806f09a340c476c8a61db3d2a4746ae61c820fff8220bfd4be0657c80d00058fc783f65a4b832e1ddd38b0ecd36ce4ccd6866277dbef28f
|
data/pageflow/dom/admin/page.rb
CHANGED
@@ -23,17 +23,17 @@ module Pageflow
|
|
23
23
|
def self.sign_in_as(role, options = {})
|
24
24
|
email = "#{role}@example.com"
|
25
25
|
password = '!Pass123'
|
26
|
-
user = FactoryBot.create(:user, options.reverse_merge(email
|
26
|
+
user = FactoryBot.create(:user, options.reverse_merge(email:, password:))
|
27
27
|
|
28
28
|
if role.to_sym == :admin
|
29
29
|
user.admin = true
|
30
30
|
user.save
|
31
31
|
else
|
32
|
-
FactoryBot.create(:membership, user
|
32
|
+
FactoryBot.create(:membership, user:, role:, entity: options[:on])
|
33
33
|
end
|
34
34
|
|
35
35
|
visit '/admin/login'
|
36
|
-
SignInForm.find!.submit_with(email
|
36
|
+
SignInForm.find!.submit_with(email:, password:)
|
37
37
|
|
38
38
|
unless page.has_content?(I18n.t('devise.sessions.signed_in'))
|
39
39
|
raise 'Expected to find sign in flash message.'
|
data/pageflow/dummy/app.rb
CHANGED
@@ -8,7 +8,7 @@ module Pageflow
|
|
8
8
|
def generate
|
9
9
|
ENV['RAILS_ROOT'] = File.expand_path(directory)
|
10
10
|
|
11
|
-
if File.exist?(directory)
|
11
|
+
if File.exist?(directory) # rubocop:disable Style/GuardClause
|
12
12
|
puts("Dummy directory #{directory} exists.")
|
13
13
|
else
|
14
14
|
system('SKIP_EAGER_LOAD=true ' \
|
@@ -17,7 +17,7 @@ module Pageflow
|
|
17
17
|
raise('Error generating dummy app.')
|
18
18
|
end
|
19
19
|
|
20
|
-
require(File.join(ENV
|
20
|
+
require(File.join(ENV.fetch('RAILS_ROOT', nil), 'config', 'environment'))
|
21
21
|
end
|
22
22
|
|
23
23
|
def directory
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'pageflow/rails_version'
|
2
2
|
|
3
3
|
def source_paths
|
4
|
-
[File.join(
|
4
|
+
[File.join(__dir__, 'templates')]
|
5
5
|
end
|
6
6
|
|
7
7
|
# The Gemfile is not required. We'll use the one from the project root instead.
|
@@ -25,11 +25,11 @@ gsub_file('config/environments/test.rb',
|
|
25
25
|
'config.eager_load = ENV["CI"].present?',
|
26
26
|
'config.eager_load = ENV["CI"].present? && !ENV["SKIP_EAGER_LOAD"]')
|
27
27
|
|
28
|
-
append_to_file('config/application.rb', <<-
|
28
|
+
append_to_file('config/application.rb', <<-RUBY)
|
29
29
|
if ENV['PAGEFLOW_DB_HOST'].present?
|
30
30
|
ActiveRecord::Tasks::DatabaseTasks::LOCAL_HOSTS << ENV['PAGEFLOW_DB_HOST']
|
31
31
|
end
|
32
|
-
|
32
|
+
RUBY
|
33
33
|
|
34
34
|
# Ensure pageflow is required even if it is not listed in plugin Gemfile does
|
35
35
|
inject_into_file('config/application.rb',
|
@@ -38,7 +38,7 @@ inject_into_file('config/application.rb',
|
|
38
38
|
|
39
39
|
if in_root { File.exist?('app/assets/javascripts/application.js') }
|
40
40
|
# Remove requires to missing gems (i.e. turbolinks)
|
41
|
-
gsub_file('app/assets/javascripts/application.js', %r
|
41
|
+
gsub_file('app/assets/javascripts/application.js', %r{//=.*}, '')
|
42
42
|
end
|
43
43
|
|
44
44
|
# Recreate db. Ignore if it does not exist.
|
@@ -67,9 +67,9 @@ inject_into_file('config/environments/test.rb',
|
|
67
67
|
|
68
68
|
# ActiveAdmin does not look for admin definitions inside dummy apps by default.
|
69
69
|
|
70
|
-
prepend_to_file('config/initializers/pageflow.rb', <<-
|
70
|
+
prepend_to_file('config/initializers/pageflow.rb', <<-RUBY)
|
71
71
|
ActiveAdmin.application.load_paths.unshift(Dir[Rails.root.join('app/admin')].first)\n
|
72
|
-
|
72
|
+
RUBY
|
73
73
|
|
74
74
|
# Adapt default configuration
|
75
75
|
|
@@ -90,9 +90,9 @@ copy_file('test_theme_preview.png',
|
|
90
90
|
# automatically. Since the test_theme is not yet registered when the
|
91
91
|
# environment is loaded, we need to add its stylesheet manually.
|
92
92
|
|
93
|
-
append_to_file('config/initializers/assets.rb', <<-
|
93
|
+
append_to_file('config/initializers/assets.rb', <<-RUBY)
|
94
94
|
Rails.application.config.assets.precompile += %w( pageflow/themes/test_theme.css )
|
95
|
-
|
95
|
+
RUBY
|
96
96
|
|
97
97
|
# Create database tables for fake hosted files and revision components.
|
98
98
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Pageflow
|
2
2
|
module EditLockTestHelpers
|
3
3
|
def acquire_edit_lock(user, entry)
|
4
|
-
edit_lock = FactoryBot.create(:edit_lock, user
|
4
|
+
edit_lock = FactoryBot.create(:edit_lock, user:, entry:)
|
5
5
|
request.headers['X-Edit-Lock'] = edit_lock.id
|
6
6
|
end
|
7
7
|
end
|
@@ -15,7 +15,7 @@ module Pageflow
|
|
15
15
|
# acquire an edit lock.
|
16
16
|
def authorize_for_editor_controller(entry)
|
17
17
|
user = FactoryBot.create(:user)
|
18
|
-
FactoryBot.create(:membership, user
|
18
|
+
FactoryBot.create(:membership, user:, entity: entry, role: :editor)
|
19
19
|
|
20
20
|
sign_in(user, scope: :user)
|
21
21
|
acquire_edit_lock(user, entry)
|
@@ -15,12 +15,10 @@ module Pageflow
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
|
18
|
+
file_importer_credentials = lambda do |authentication_provider|
|
19
19
|
token = AuthenticationToken.where(provider: authentication_provider) if
|
20
20
|
authentication_provider.present?
|
21
|
-
|
22
|
-
token = nil if token.empty?
|
23
|
-
end
|
21
|
+
token = nil if !token.nil? && token.empty?
|
24
22
|
token
|
25
23
|
end
|
26
24
|
|
@@ -54,7 +52,7 @@ module Pageflow
|
|
54
52
|
expect(file_importer.class.method_defined?(:search)).to be(true)
|
55
53
|
expect {
|
56
54
|
provider = file_importer.authentication_provider
|
57
|
-
search_result = file_importer.search(file_importer_credentials(provider),
|
55
|
+
search_result = file_importer.search(file_importer_credentials.call(provider),
|
58
56
|
'test*$*page=1&per_page=15*$*')
|
59
57
|
expect(search_result).not_to be_nil
|
60
58
|
}.not_to raise_error
|
@@ -64,7 +62,8 @@ module Pageflow
|
|
64
62
|
expect(file_importer.class.method_defined?(:files_meta_data)).to be(true)
|
65
63
|
expect {
|
66
64
|
provider = file_importer.authentication_provider
|
67
|
-
meta_data = file_importer.files_meta_data(file_importer_credentials(provider),
|
65
|
+
meta_data = file_importer.files_meta_data(file_importer_credentials.call(provider),
|
66
|
+
{})
|
68
67
|
expect(meta_data).not_to be_nil
|
69
68
|
expect(meta_data).to include(:collection)
|
70
69
|
expect(meta_data).to include(:files)
|
data/pageflow/lint/file_type.rb
CHANGED
@@ -39,7 +39,7 @@ module Pageflow
|
|
39
39
|
formats: [:json],
|
40
40
|
locals: {
|
41
41
|
file: UsedFile.new(file, FileUsage.new),
|
42
|
-
file_type:
|
42
|
+
file_type:
|
43
43
|
})
|
44
44
|
}.not_to raise_error
|
45
45
|
end
|
@@ -51,14 +51,14 @@ module Pageflow
|
|
51
51
|
formats: [:json],
|
52
52
|
locals: {
|
53
53
|
file: UsedFile.new(file, FileUsage.new),
|
54
|
-
file_type:
|
54
|
+
file_type:
|
55
55
|
})
|
56
56
|
end
|
57
57
|
|
58
58
|
it 'provides css_background_image_urls that returns hash if present' do
|
59
59
|
if file_type.css_background_image_urls
|
60
60
|
entry = create(:entry)
|
61
|
-
result = file_type.css_background_image_urls_for(file, entry:
|
61
|
+
result = file_type.css_background_image_urls_for(file, entry:)
|
62
62
|
|
63
63
|
expect(result).to be_a(Hash)
|
64
64
|
end
|
@@ -66,7 +66,7 @@ module Pageflow
|
|
66
66
|
|
67
67
|
it 'can be exported and imported without error' do
|
68
68
|
exported_entry = create(:entry)
|
69
|
-
create(:file_usage, file
|
69
|
+
create(:file_usage, file:, revision: exported_entry.draft)
|
70
70
|
user = create(:user, :manager, on: create(:account))
|
71
71
|
|
72
72
|
get_prerequisite_files.call(file).each do |prerequisite_file|
|
data/pageflow/lint.rb
CHANGED
@@ -25,8 +25,8 @@ module Pageflow
|
|
25
25
|
# require 'pageflow/lint'
|
26
26
|
#
|
27
27
|
# Pageflow::Lint.entry_type(SomePlugin.entry_type)
|
28
|
-
def self.entry_type(
|
29
|
-
Lint::EntryType.lint(
|
28
|
+
def self.entry_type(*, **kws)
|
29
|
+
Lint::EntryType.lint(*, **kws)
|
30
30
|
end
|
31
31
|
|
32
32
|
# Ensure file type json partials render correctly.
|
@@ -52,8 +52,8 @@ module Pageflow
|
|
52
52
|
# create_file_type: -> { SomePlugin.file_type },
|
53
53
|
# create_file: -> { create(:some_file) })
|
54
54
|
# end
|
55
|
-
def self.file_type(
|
56
|
-
Lint::FileType.lint(
|
55
|
+
def self.file_type(*, **kws)
|
56
|
+
Lint::FileType.lint(*, **kws)
|
57
57
|
end
|
58
58
|
|
59
59
|
# Contract specs for page types
|
@@ -70,8 +70,8 @@ module Pageflow
|
|
70
70
|
# module SomePlugin
|
71
71
|
# Pageflow::Lint.page_type(SomePLugin.page_type)
|
72
72
|
# end
|
73
|
-
def self.page_type(
|
74
|
-
Lint::PageType.lint(
|
73
|
+
def self.page_type(*, **kws)
|
74
|
+
Lint::PageType.lint(*, **kws)
|
75
75
|
end
|
76
76
|
|
77
77
|
# Contracts specs for file import plugin
|
@@ -83,8 +83,8 @@ module Pageflow
|
|
83
83
|
# module SomePlugin
|
84
84
|
# Pageflow::Lint.file_import(SomePLugin.file_import)
|
85
85
|
# end
|
86
|
-
def self.file_import(
|
87
|
-
Lint::FileImport.lint(
|
86
|
+
def self.file_import(*, **kws)
|
87
|
+
Lint::FileImport.lint(*, **kws)
|
88
88
|
end
|
89
89
|
end
|
90
90
|
end
|
@@ -8,7 +8,7 @@ module Pageflow
|
|
8
8
|
if page_type_or_page.is_a?(Page)
|
9
9
|
[page_type_or_page, page_type_or_page.page_type]
|
10
10
|
else
|
11
|
-
[FactoryBot.create(:page, template: page_type_or_page.name, configuration:
|
11
|
+
[FactoryBot.create(:page, template: page_type_or_page.name, configuration:),
|
12
12
|
page_type_or_page]
|
13
13
|
end
|
14
14
|
|
@@ -29,7 +29,7 @@ module Pageflow
|
|
29
29
|
|
30
30
|
assign(:entry, entry)
|
31
31
|
|
32
|
-
helper.render_page_template(page, entry:
|
32
|
+
helper.render_page_template(page, entry:)
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
@@ -13,10 +13,11 @@ Capybara.register_driver :selenium_chrome_headless_no_sandbox do |app|
|
|
13
13
|
|
14
14
|
Capybara::Selenium::Driver.new(app,
|
15
15
|
browser: :chrome,
|
16
|
-
options:
|
16
|
+
options:)
|
17
17
|
end
|
18
18
|
|
19
19
|
Capybara.javascript_driver = :selenium_chrome_headless_no_sandbox
|
20
|
+
Capybara.server = :puma, {Silent: true}
|
20
21
|
|
21
22
|
Capybara::Chromedriver::Logger.raise_js_errors = true
|
22
23
|
Capybara::Chromedriver::Logger.filters = [
|
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pageflow-support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 17.0
|
4
|
+
version: 17.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Codevise Solutions Ltd
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: mysql2
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.5.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.5.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: pageflow
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 17.1.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:
|
40
|
+
version: 17.1.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: domino
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,47 +67,47 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '4.8'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: bootsnap
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '1.0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '1.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: listen
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '3.0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '3.0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: resque
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
103
|
+
version: '2.6'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
110
|
+
version: '2.6'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: resque-scheduler
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -215,7 +215,6 @@ files:
|
|
215
215
|
- pageflow/editor_controller_test_helper.rb
|
216
216
|
- pageflow/entries_controller_test_helper.rb
|
217
217
|
- pageflow/global_config_api_test_helper.rb
|
218
|
-
- pageflow/json_test_helper.rb
|
219
218
|
- pageflow/lint.rb
|
220
219
|
- pageflow/lint/entry_type.rb
|
221
220
|
- pageflow/lint/file_import.rb
|
@@ -236,7 +235,8 @@ files:
|
|
236
235
|
- pageflow/used_file_test_helper.rb
|
237
236
|
homepage: https://pageflow.io
|
238
237
|
licenses: []
|
239
|
-
metadata:
|
238
|
+
metadata:
|
239
|
+
rubygems_mfa_required: 'true'
|
240
240
|
post_install_message:
|
241
241
|
rdoc_options: []
|
242
242
|
require_paths:
|
@@ -245,7 +245,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
245
245
|
requirements:
|
246
246
|
- - ">="
|
247
247
|
- !ruby/object:Gem::Version
|
248
|
-
version: '
|
248
|
+
version: '3.2'
|
249
249
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
250
250
|
requirements:
|
251
251
|
- - ">="
|
@@ -1,46 +0,0 @@
|
|
1
|
-
module Pageflow
|
2
|
-
module JsonTestHelper
|
3
|
-
def json_response(options = {})
|
4
|
-
json_get(response.body, options)
|
5
|
-
end
|
6
|
-
|
7
|
-
def json_get(text, options = {})
|
8
|
-
object = JSON.parse(text)
|
9
|
-
path = options[:path] || []
|
10
|
-
pretty_path = nil
|
11
|
-
|
12
|
-
Array.wrap(path).inject(object) do |component, key|
|
13
|
-
case key
|
14
|
-
when Integer, '*'
|
15
|
-
expect(component).to be_a(Array),
|
16
|
-
"Expected json response to have array at '#{pretty_path || 'root'}'"
|
17
|
-
pretty_path = [pretty_path, "[#{key}]"].compact.join
|
18
|
-
|
19
|
-
if key == '*'
|
20
|
-
component
|
21
|
-
else
|
22
|
-
expect(component[key]).to be_present,
|
23
|
-
"Expected json response to have item at '#{pretty_path}'"
|
24
|
-
component[key]
|
25
|
-
end
|
26
|
-
when String, Symbol
|
27
|
-
key = key.to_s
|
28
|
-
pretty_path = [pretty_path, key].compact * '.'
|
29
|
-
|
30
|
-
case component
|
31
|
-
when Array
|
32
|
-
component.map do |c|
|
33
|
-
expect(c).to have_key(key),
|
34
|
-
"Expected json response to have key '#{pretty_path}'"
|
35
|
-
c[key]
|
36
|
-
end
|
37
|
-
else
|
38
|
-
expect(component).to have_key(key),
|
39
|
-
"Expected json response to have key '#{pretty_path}'"
|
40
|
-
component[key]
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|