discourse/spec/support
Alan Guo Xiang Tan 243fcb6ffc
DEV: Introduce run_theme_migration spec helper in test environment (#26845)
This commit introduces the `run_theme_migration` spec helper to allow
theme developers to write RSpec tests for theme migrations. For example,
this allows the following RSpec test to be written in themes:

```
RSpec.describe "0003-migrate-small-links-setting migration" do
  let!(:theme) { upload_theme_component }

  it "should set target property to `_blank` if previous target component is not valid or empty" do
    theme.theme_settings.create!(
      name: "small_links",
      theme: theme,
      data_type: ThemeSetting.types[:string],
      value: "some text, #|some text 2, #, invalid target",
    )

    run_theme_migration(theme, "0003-migrate-small-links-setting")

    expect(theme.settings[:small_links].value).to eq(
      [
        { "text" => "some text", "url" => "#", "target" => "_blank" },
        { "text" => "some text 2", "url" => "#", "target" => "_blank" },
      ],
    )
  end
end
```

This change is being introduced because we realised that writting just
javascript tests for the migrations is insufficient since javascript
tests do not ensure that the migrated theme settings can actually be
successfully saved into the database. Hence, we are introduce this
helper as a way for theme developers to write "end-to-end" migrations
tests.
2024-05-03 06:29:18 +08:00
..
versioning DEV: Apply syntax_tree formatting to spec/* 2023-01-09 11:49:28 +00:00
bookmarkable_helper.rb DEV: Change Bookmarkable registration to DiscoursePluginRegistry (#20556) 2023-03-08 10:39:12 +10:00
common_basic_reviewable_serializer.rb DEV: Apply syntax_tree formatting to spec/* 2023-01-09 11:49:28 +00:00
concurrency.rb DEV: Fix various rubocop lints (#24749) 2023-12-06 23:25:00 +01:00
diagnostics_helper.rb DEV: Apply syntax_tree formatting to spec/* 2023-01-09 11:49:28 +00:00
discourse_event_helper.rb DEV: Apply syntax_tree formatting to spec/* 2023-01-09 11:49:28 +00:00
dom_matcher.rb DEV: Update minitest to 5.19.0 (#22821) 2023-07-27 12:18:40 +02:00
dummy_custom_summarization.rb FEATURE: Prefer topic_embed's cached content when summarizing (#25190) 2024-01-09 14:00:01 -03:00
fake_bookmark_hashtag_data_source.rb DEV: Introduce enabled? API to hashtag data sources (#22632) 2023-07-18 09:39:01 +10:00
fake_logger.rb DEV: Fix Lint/DuplicateMethods (#24746) 2023-12-06 13:18:34 +01:00
fake_s3.rb DEV: Apply syntax_tree formatting to spec/* 2023-01-09 11:49:28 +00:00
fast_image_helpers.rb
final_destination_helper.rb Revert "DEV: Allow webmock to intercept FinalDestination::HTTP requests (#20575)" (#20576) 2023-03-08 11:26:32 +08:00
helpers.rb DEV: Introduce run_theme_migration spec helper in test environment (#26845) 2024-05-03 06:29:18 +08:00
imap_helper.rb DEV: lint against Layout/EmptyLineBetweenDefs (#24914) 2023-12-15 23:46:04 +08:00
integration_helpers.rb DEV: Apply syntax_tree formatting to spec/* 2023-01-09 11:49:28 +00:00
match_html_matcher.rb DEV: Apply syntax_tree formatting to spec/* 2023-01-09 11:49:28 +00:00
mock_git_importer.rb SECURITY: Expand and improve SSRF Protections (#18815) 2022-11-01 16:33:17 +00:00
negated_matcher.rb DEV: Don’t use change { … }.by(0) in specs 2022-07-26 10:34:15 +02:00
onebox_helpers.rb DEV: Replace custom Onebox symbolize_keys implementation with ActiveSupport (#23828) 2023-10-09 09:32:09 +02:00
problem_check_matcher.rb DEV: Move non scheduled problem checks to classes (#26122) 2024-03-14 10:55:01 +08:00
rate_limit_matcher.rb DEV: Apply syntax_tree formatting to spec/* 2023-01-09 11:49:28 +00:00
sample_plugin_site_settings.yml FIX: Sort plugins by their setting category name (#25128) 2024-01-08 09:57:25 +10:00
service_matchers.rb DEV: Move chat service objects into core (#26506) 2024-04-04 10:57:41 -03:00
shared_examples_for_custom_fields.rb DEV: Set limits on custom fields 2023-06-13 11:47:21 +02:00
shared_examples_for_stats_cacheable.rb DEV: Apply syntax_tree formatting to spec/* 2023-01-09 11:49:28 +00:00
sidekiq_helpers.rb FIX: send email to normalized email owner when hiding emails (#23524) 2023-09-12 11:06:35 +10:00
site_settings_helpers.rb DEV: Avoid leaking new site setting states in test environment (#21713) 2023-05-25 07:53:57 +08:00
system_helpers.rb DEV: Introduce run_theme_migration spec helper in test environment (#26845) 2024-05-03 06:29:18 +08:00
test_second_factor_action.rb DEV: Apply syntax_tree formatting to spec/* 2023-01-09 11:49:28 +00:00
time_matcher.rb DEV: support nil values in the eq_time matcher (#22116) 2023-06-20 19:06:40 +04:00
topic_guardian_can_see_consistency_check.rb DEV: Apply syntax_tree formatting to spec/* 2023-01-09 11:49:28 +00:00
ts_vector_matcher.rb FIX: domain searches not working properly for URLs (#20136) 2023-02-03 09:55:28 +11:00
uploads_helpers.rb DEV: Apply syntax_tree formatting to spec/* 2023-01-09 11:49:28 +00:00
user_sidebar_serializer_attributes.rb DEV: Allow fab! without block (#24314) 2023-11-09 16:47:59 -06:00
webauthn_integration_helpers.rb DEV: Refactor webauthn to support passkeys (1/3) (#23586) 2023-10-03 14:59:28 -04:00