trusty-cms 7.1.3 → 8.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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +118 -123
  3. data/config/application.rb +5 -1
  4. data/lib/string_extensions/string_extensions.rb +4 -2
  5. data/lib/trusty_cms/version.rb +1 -1
  6. data/spec/controllers/admin/assets_controller_spec.rb +124 -0
  7. data/spec/controllers/admin/changes_controller_spec.rb +72 -0
  8. data/spec/controllers/admin/configuration_controller_spec.rb +49 -0
  9. data/spec/controllers/admin/page_attachments_controller_spec.rb +54 -0
  10. data/spec/controllers/admin/pages_controller_spec.rb +162 -0
  11. data/spec/controllers/admin/preferences_controller_spec.rb +44 -0
  12. data/spec/controllers/admin/security_controller_spec.rb +85 -0
  13. data/spec/controllers/admin/sessions_controller_spec.rb +56 -0
  14. data/spec/controllers/admin/two_factor_controller_spec.rb +63 -0
  15. data/spec/controllers/admin/users_controller_spec.rb +132 -0
  16. data/spec/controllers/page_status_controller_spec.rb +66 -0
  17. data/spec/dummy/bin/rails +3 -3
  18. data/spec/dummy/bin/rake +2 -2
  19. data/spec/dummy/bin/setup +21 -13
  20. data/spec/dummy/config/application.rb +2 -0
  21. data/spec/dummy/config/boot.rb +1 -1
  22. data/spec/dummy/config/cable.yml +10 -0
  23. data/spec/dummy/config/initializers/content_security_policy.rb +25 -0
  24. data/spec/dummy/config/initializers/filter_parameter_logging.rb +6 -2
  25. data/spec/dummy/config/initializers/inflections.rb +4 -4
  26. data/spec/dummy/config/initializers/new_framework_defaults_7_2.rb +70 -0
  27. data/spec/dummy/config/initializers/permissions_policy.rb +13 -0
  28. data/spec/dummy/config/puma.rb +34 -0
  29. data/spec/dummy/config/storage.yml +28 -1
  30. data/spec/dummy/db/migrate/20260729201444_add_service_name_to_active_storage_blobs.active_storage.rb +22 -0
  31. data/spec/dummy/db/migrate/20260729201445_create_active_storage_variant_records.active_storage.rb +27 -0
  32. data/spec/dummy/db/migrate/20260729201446_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb +8 -0
  33. data/spec/dummy/public/404.html +6 -6
  34. data/spec/dummy/public/406-unsupported-browser.html +66 -0
  35. data/spec/dummy/public/422.html +6 -6
  36. data/spec/dummy/public/500.html +6 -6
  37. data/spec/dummy/public/icon.png +0 -0
  38. data/spec/dummy/public/icon.svg +3 -0
  39. data/spec/dummy/public/robots.txt +1 -0
  40. data/spec/helpers/admin/configuration_helper_spec.rb +62 -0
  41. data/spec/helpers/admin/node_helper_spec.rb +132 -0
  42. data/spec/helpers/admin/pages_helper_spec.rb +84 -0
  43. data/spec/helpers/application_helper_spec.rb +115 -0
  44. data/spec/lib/string_extensions_spec.rb +41 -0
  45. data/spec/support/active_record_encryption.rb +10 -0
  46. data/spec/support/asset_type_registry.rb +29 -0
  47. data/trusty_cms.gemspec +2 -1
  48. metadata +74 -6
  49. data/spec/controllers/assets_controller.rb +0 -66
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trusty-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.1.3
4
+ version: '8.0'
5
5
  platform: ruby
6
6
  authors:
7
7
  - TrustyCms CMS dev team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-07-27 00:00:00.000000000 Z
11
+ date: 2026-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activestorage-validator
@@ -266,6 +266,20 @@ dependencies:
266
266
  - - ">="
267
267
  - !ruby/object:Gem::Version
268
268
  version: '0'
269
+ - !ruby/object:Gem::Dependency
270
+ name: mini_magick
271
+ requirement: !ruby/object:Gem::Requirement
272
+ requirements:
273
+ - - "~>"
274
+ - !ruby/object:Gem::Version
275
+ version: '5.0'
276
+ type: :runtime
277
+ prerelease: false
278
+ version_requirements: !ruby/object:Gem::Requirement
279
+ requirements:
280
+ - - "~>"
281
+ - !ruby/object:Gem::Version
282
+ version: '5.0'
269
283
  - !ruby/object:Gem::Dependency
270
284
  name: mini_racer
271
285
  requirement: !ruby/object:Gem::Requirement
@@ -410,14 +424,14 @@ dependencies:
410
424
  requirements:
411
425
  - - "~>"
412
426
  - !ruby/object:Gem::Version
413
- version: 7.2.2.1
427
+ version: 8.0.0
414
428
  type: :runtime
415
429
  prerelease: false
416
430
  version_requirements: !ruby/object:Gem::Requirement
417
431
  requirements:
418
432
  - - "~>"
419
433
  - !ruby/object:Gem::Version
420
- version: 7.2.2.1
434
+ version: 8.0.0
421
435
  - !ruby/object:Gem::Dependency
422
436
  name: rake
423
437
  requirement: !ruby/object:Gem::Requirement
@@ -1169,9 +1183,19 @@ files:
1169
1183
  - script/extension
1170
1184
  - script/rails
1171
1185
  - spec/ci/database.mysql.yml
1186
+ - spec/controllers/admin/assets_controller_spec.rb
1187
+ - spec/controllers/admin/changes_controller_spec.rb
1188
+ - spec/controllers/admin/configuration_controller_spec.rb
1189
+ - spec/controllers/admin/page_attachments_controller_spec.rb
1190
+ - spec/controllers/admin/pages_controller_spec.rb
1191
+ - spec/controllers/admin/preferences_controller_spec.rb
1192
+ - spec/controllers/admin/security_controller_spec.rb
1193
+ - spec/controllers/admin/sessions_controller_spec.rb
1172
1194
  - spec/controllers/admin/snippets_controller_spec.rb
1195
+ - spec/controllers/admin/two_factor_controller_spec.rb
1196
+ - spec/controllers/admin/users_controller_spec.rb
1173
1197
  - spec/controllers/application_controller_spec.rb
1174
- - spec/controllers/assets_controller.rb
1198
+ - spec/controllers/page_status_controller_spec.rb
1175
1199
  - spec/controllers/site_controller_spec.rb
1176
1200
  - spec/controllers/users_controller_spec.rb
1177
1201
  - spec/dummy/README.rdoc
@@ -1184,6 +1208,7 @@ files:
1184
1208
  - spec/dummy/config.ru
1185
1209
  - spec/dummy/config/application.rb
1186
1210
  - spec/dummy/config/boot.rb
1211
+ - spec/dummy/config/cable.yml
1187
1212
  - spec/dummy/config/database.yml
1188
1213
  - spec/dummy/config/environment.rb
1189
1214
  - spec/dummy/config/environments/development.rb
@@ -1191,24 +1216,35 @@ files:
1191
1216
  - spec/dummy/config/environments/test.rb
1192
1217
  - spec/dummy/config/initializers/assets.rb
1193
1218
  - spec/dummy/config/initializers/backtrace_silencers.rb
1219
+ - spec/dummy/config/initializers/content_security_policy.rb
1194
1220
  - spec/dummy/config/initializers/cookies_serializer.rb
1195
1221
  - spec/dummy/config/initializers/filter_parameter_logging.rb
1196
1222
  - spec/dummy/config/initializers/inflections.rb
1197
1223
  - spec/dummy/config/initializers/mime_types.rb
1224
+ - spec/dummy/config/initializers/new_framework_defaults_7_2.rb
1225
+ - spec/dummy/config/initializers/permissions_policy.rb
1198
1226
  - spec/dummy/config/initializers/session_store.rb
1199
1227
  - spec/dummy/config/initializers/trusty_cms_config.rb
1200
1228
  - spec/dummy/config/initializers/wrap_parameters.rb
1201
1229
  - spec/dummy/config/initializers/zeitwerk.rb
1202
1230
  - spec/dummy/config/locales/en.yml
1231
+ - spec/dummy/config/puma.rb
1203
1232
  - spec/dummy/config/routes.rb
1204
1233
  - spec/dummy/config/secrets.yml
1205
1234
  - spec/dummy/config/storage.yml
1235
+ - spec/dummy/db/migrate/20260729201444_add_service_name_to_active_storage_blobs.active_storage.rb
1236
+ - spec/dummy/db/migrate/20260729201445_create_active_storage_variant_records.active_storage.rb
1237
+ - spec/dummy/db/migrate/20260729201446_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb
1206
1238
  - spec/dummy/db/schema.rb
1207
1239
  - spec/dummy/package.json
1208
1240
  - spec/dummy/public/404.html
1241
+ - spec/dummy/public/406-unsupported-browser.html
1209
1242
  - spec/dummy/public/422.html
1210
1243
  - spec/dummy/public/500.html
1211
1244
  - spec/dummy/public/favicon.ico
1245
+ - spec/dummy/public/icon.png
1246
+ - spec/dummy/public/icon.svg
1247
+ - spec/dummy/public/robots.txt
1212
1248
  - spec/dummy/yarn.lock
1213
1249
  - spec/factories/layout.rb
1214
1250
  - spec/factories/page.rb
@@ -1222,6 +1258,9 @@ files:
1222
1258
  - spec/fixtures/files/sample.ics
1223
1259
  - spec/fixtures/files/sample.txt
1224
1260
  - spec/fixtures/users.yml
1261
+ - spec/helpers/admin/configuration_helper_spec.rb
1262
+ - spec/helpers/admin/node_helper_spec.rb
1263
+ - spec/helpers/admin/pages_helper_spec.rb
1225
1264
  - spec/helpers/admin/references_helper_spec.rb
1226
1265
  - spec/helpers/admin/url_helper_spec.rb
1227
1266
  - spec/helpers/application_helper_spec.rb
@@ -1264,6 +1303,8 @@ files:
1264
1303
  - spec/rails_helper.rb
1265
1304
  - spec/requests/admin/snippets_spec.rb
1266
1305
  - spec/spec_helper.rb
1306
+ - spec/support/active_record_encryption.rb
1307
+ - spec/support/asset_type_registry.rb
1267
1308
  - spec/support/custom_actions.rb
1268
1309
  - trusty_cms.gemspec
1269
1310
  - vendor/extensions/clipped-extension/clipped_extension.rb
@@ -1364,9 +1405,19 @@ specification_version: 4
1364
1405
  summary: A no-fluff content management system designed for small teams.
1365
1406
  test_files:
1366
1407
  - spec/ci/database.mysql.yml
1408
+ - spec/controllers/admin/assets_controller_spec.rb
1409
+ - spec/controllers/admin/changes_controller_spec.rb
1410
+ - spec/controllers/admin/configuration_controller_spec.rb
1411
+ - spec/controllers/admin/page_attachments_controller_spec.rb
1412
+ - spec/controllers/admin/pages_controller_spec.rb
1413
+ - spec/controllers/admin/preferences_controller_spec.rb
1414
+ - spec/controllers/admin/security_controller_spec.rb
1415
+ - spec/controllers/admin/sessions_controller_spec.rb
1367
1416
  - spec/controllers/admin/snippets_controller_spec.rb
1417
+ - spec/controllers/admin/two_factor_controller_spec.rb
1418
+ - spec/controllers/admin/users_controller_spec.rb
1368
1419
  - spec/controllers/application_controller_spec.rb
1369
- - spec/controllers/assets_controller.rb
1420
+ - spec/controllers/page_status_controller_spec.rb
1370
1421
  - spec/controllers/site_controller_spec.rb
1371
1422
  - spec/controllers/users_controller_spec.rb
1372
1423
  - spec/dummy/README.rdoc
@@ -1378,6 +1429,7 @@ test_files:
1378
1429
  - spec/dummy/bin/setup
1379
1430
  - spec/dummy/config/application.rb
1380
1431
  - spec/dummy/config/boot.rb
1432
+ - spec/dummy/config/cable.yml
1381
1433
  - spec/dummy/config/database.yml
1382
1434
  - spec/dummy/config/environment.rb
1383
1435
  - spec/dummy/config/environments/development.rb
@@ -1385,25 +1437,36 @@ test_files:
1385
1437
  - spec/dummy/config/environments/test.rb
1386
1438
  - spec/dummy/config/initializers/assets.rb
1387
1439
  - spec/dummy/config/initializers/backtrace_silencers.rb
1440
+ - spec/dummy/config/initializers/content_security_policy.rb
1388
1441
  - spec/dummy/config/initializers/cookies_serializer.rb
1389
1442
  - spec/dummy/config/initializers/filter_parameter_logging.rb
1390
1443
  - spec/dummy/config/initializers/inflections.rb
1391
1444
  - spec/dummy/config/initializers/mime_types.rb
1445
+ - spec/dummy/config/initializers/new_framework_defaults_7_2.rb
1446
+ - spec/dummy/config/initializers/permissions_policy.rb
1392
1447
  - spec/dummy/config/initializers/session_store.rb
1393
1448
  - spec/dummy/config/initializers/trusty_cms_config.rb
1394
1449
  - spec/dummy/config/initializers/wrap_parameters.rb
1395
1450
  - spec/dummy/config/initializers/zeitwerk.rb
1396
1451
  - spec/dummy/config/locales/en.yml
1452
+ - spec/dummy/config/puma.rb
1397
1453
  - spec/dummy/config/routes.rb
1398
1454
  - spec/dummy/config/secrets.yml
1399
1455
  - spec/dummy/config/storage.yml
1400
1456
  - spec/dummy/config.ru
1457
+ - spec/dummy/db/migrate/20260729201444_add_service_name_to_active_storage_blobs.active_storage.rb
1458
+ - spec/dummy/db/migrate/20260729201445_create_active_storage_variant_records.active_storage.rb
1459
+ - spec/dummy/db/migrate/20260729201446_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb
1401
1460
  - spec/dummy/db/schema.rb
1402
1461
  - spec/dummy/package.json
1403
1462
  - spec/dummy/public/404.html
1463
+ - spec/dummy/public/406-unsupported-browser.html
1404
1464
  - spec/dummy/public/422.html
1405
1465
  - spec/dummy/public/500.html
1406
1466
  - spec/dummy/public/favicon.ico
1467
+ - spec/dummy/public/icon.png
1468
+ - spec/dummy/public/icon.svg
1469
+ - spec/dummy/public/robots.txt
1407
1470
  - spec/dummy/yarn.lock
1408
1471
  - spec/factories/layout.rb
1409
1472
  - spec/factories/page.rb
@@ -1417,6 +1480,9 @@ test_files:
1417
1480
  - spec/fixtures/files/sample.ics
1418
1481
  - spec/fixtures/files/sample.txt
1419
1482
  - spec/fixtures/users.yml
1483
+ - spec/helpers/admin/configuration_helper_spec.rb
1484
+ - spec/helpers/admin/node_helper_spec.rb
1485
+ - spec/helpers/admin/pages_helper_spec.rb
1420
1486
  - spec/helpers/admin/references_helper_spec.rb
1421
1487
  - spec/helpers/admin/url_helper_spec.rb
1422
1488
  - spec/helpers/application_helper_spec.rb
@@ -1459,4 +1525,6 @@ test_files:
1459
1525
  - spec/rails_helper.rb
1460
1526
  - spec/requests/admin/snippets_spec.rb
1461
1527
  - spec/spec_helper.rb
1528
+ - spec/support/active_record_encryption.rb
1529
+ - spec/support/asset_type_registry.rb
1462
1530
  - spec/support/custom_actions.rb
@@ -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