trusty-cms 7.1.3 → 7.2

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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +72 -68
  3. data/lib/string_extensions/string_extensions.rb +4 -2
  4. data/lib/trusty_cms/version.rb +1 -1
  5. data/spec/controllers/admin/assets_controller_spec.rb +124 -0
  6. data/spec/controllers/admin/changes_controller_spec.rb +72 -0
  7. data/spec/controllers/admin/configuration_controller_spec.rb +49 -0
  8. data/spec/controllers/admin/page_attachments_controller_spec.rb +54 -0
  9. data/spec/controllers/admin/pages_controller_spec.rb +162 -0
  10. data/spec/controllers/admin/preferences_controller_spec.rb +44 -0
  11. data/spec/controllers/admin/security_controller_spec.rb +85 -0
  12. data/spec/controllers/admin/sessions_controller_spec.rb +56 -0
  13. data/spec/controllers/admin/two_factor_controller_spec.rb +63 -0
  14. data/spec/controllers/admin/users_controller_spec.rb +132 -0
  15. data/spec/controllers/page_status_controller_spec.rb +66 -0
  16. data/spec/dummy/bin/rails +3 -3
  17. data/spec/dummy/bin/rake +2 -2
  18. data/spec/dummy/bin/setup +21 -13
  19. data/spec/dummy/config/boot.rb +1 -1
  20. data/spec/dummy/config/cable.yml +10 -0
  21. data/spec/dummy/config/initializers/content_security_policy.rb +25 -0
  22. data/spec/dummy/config/initializers/filter_parameter_logging.rb +6 -2
  23. data/spec/dummy/config/initializers/inflections.rb +4 -4
  24. data/spec/dummy/config/initializers/new_framework_defaults_7_2.rb +70 -0
  25. data/spec/dummy/config/initializers/permissions_policy.rb +13 -0
  26. data/spec/dummy/config/puma.rb +34 -0
  27. data/spec/dummy/config/storage.yml +28 -1
  28. data/spec/dummy/db/migrate/20260729201444_add_service_name_to_active_storage_blobs.active_storage.rb +22 -0
  29. data/spec/dummy/db/migrate/20260729201445_create_active_storage_variant_records.active_storage.rb +27 -0
  30. data/spec/dummy/db/migrate/20260729201446_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb +8 -0
  31. data/spec/dummy/public/404.html +6 -6
  32. data/spec/dummy/public/406-unsupported-browser.html +66 -0
  33. data/spec/dummy/public/422.html +6 -6
  34. data/spec/dummy/public/500.html +6 -6
  35. data/spec/dummy/public/icon.png +0 -0
  36. data/spec/dummy/public/icon.svg +3 -0
  37. data/spec/dummy/public/robots.txt +1 -0
  38. data/spec/helpers/admin/configuration_helper_spec.rb +62 -0
  39. data/spec/helpers/admin/node_helper_spec.rb +132 -0
  40. data/spec/helpers/admin/pages_helper_spec.rb +84 -0
  41. data/spec/helpers/application_helper_spec.rb +115 -0
  42. data/spec/lib/string_extensions_spec.rb +41 -0
  43. data/spec/support/active_record_encryption.rb +10 -0
  44. data/spec/support/asset_type_registry.rb +29 -0
  45. data/trusty_cms.gemspec +1 -1
  46. metadata +68 -8
  47. data/spec/controllers/assets_controller.rb +0 -66
@@ -1,66 +0,0 @@
1
- require 'spec_helper'
2
- require 'rack/test'
3
-
4
- RSpec.describe Admin::AssetsController, type: :controller do
5
- routes { TrustyCms::Engine.routes }
6
-
7
- let(:user) { create(:admin) }
8
- let(:fixtures_path) { TrustyCms::Engine.root.join('spec', 'fixtures', 'files') }
9
-
10
- before do
11
- allow(controller).to receive(:authenticate_user!).and_return(true)
12
- allow(controller).to receive(:current_user).and_return(user)
13
- end
14
-
15
- around do |example|
16
- original_kraken = defined?($kraken) ? $kraken : nil
17
- $kraken = double('KrakenClient', api_key: nil)
18
- example.run
19
- $kraken = original_kraken
20
- end
21
-
22
- describe 'POST #uploader' do
23
- it 'returns the asset url when the upload succeeds' do
24
- file = Rack::Test::UploadedFile.new(fixtures_path.join('sample.ics'), 'text/calendar')
25
- asset_storage = double('AssetStorage', url: '/assets/sample.ics')
26
- asset = instance_double(Asset,
27
- valid?: true,
28
- asset: asset_storage,
29
- page_attachments: double('Assoc', build: nil),
30
- id: 1)
31
-
32
- allow(asset).to receive(:created_by_id=)
33
- allow(asset).to receive(:updated_by_id=)
34
- allow(asset).to receive(:save!)
35
- allow(Asset).to receive(:create).and_return(asset)
36
- allow(controller).to receive(:maybe_compress).and_return(file)
37
-
38
- post :uploader, params: { upload: file }, format: :json
39
-
40
- expect(response).to have_http_status(:ok)
41
- expect(JSON.parse(response.body)).to eq('url' => '/assets/sample.ics')
42
- expect(controller).to have_received(:maybe_compress).with(file)
43
- expect(Asset).to have_received(:create).with(asset: file, caption: '')
44
- end
45
-
46
- it 'returns unsupported media type for disallowed content types' do
47
- file = Rack::Test::UploadedFile.new(fixtures_path.join('sample.txt'), 'text/plain')
48
-
49
- expect(Asset).not_to receive(:create)
50
-
51
- post :uploader, params: { upload: file }, format: :json
52
-
53
- expect(response).to have_http_status(:unsupported_media_type)
54
- expect(JSON.parse(response.body)['error']).to eq('Unsupported file type.')
55
- expect(flash[:error]).to eq('Unsupported file type.')
56
- end
57
-
58
- it 'returns unprocessable entity when no file is provided' do
59
- post :uploader, params: {}, format: :json
60
-
61
- expect(response).to have_http_status(:unprocessable_entity)
62
- expect(JSON.parse(response.body)['error']).to eq('No file uploaded.')
63
- expect(flash[:error]).to eq('No file uploaded.')
64
- end
65
- end
66
- end