summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Jankowski <matt@jankowski.online>2024-06-19 09:46:52 -0400
committerGitHub <noreply@github.com>2024-06-19 13:46:52 +0000
commit84a31319e9900260b54c05fdeec804e182d06573 (patch)
tree20ccf2a1365dc4ee89ec43685d4d8dc25e25abc9
parent53776cd58f98e93797ebc9fb34f02ccdb6dad01f (diff)
Add `match_json_values` and use in AP worker specs (#30720)
-rw-r--r--spec/support/matchers/json/match_json_schema.rb11
-rw-r--r--spec/workers/activitypub/distribute_poll_update_worker_spec.rb2
-rw-r--r--spec/workers/activitypub/distribution_worker_spec.rb6
-rw-r--r--spec/workers/activitypub/move_distribution_worker_spec.rb12
-rw-r--r--spec/workers/activitypub/status_update_distribution_worker_spec.rb4
-rw-r--r--spec/workers/activitypub/update_distribution_worker_spec.rb2
6 files changed, 26 insertions, 11 deletions
diff --git a/spec/support/matchers/json/match_json_schema.rb b/spec/support/matchers/json/match_json_schema.rb
index 3a275199efd..b4ced8addbd 100644
--- a/spec/support/matchers/json/match_json_schema.rb
+++ b/spec/support/matchers/json/match_json_schema.rb
@@ -6,3 +6,14 @@ RSpec::Matchers.define :match_json_schema do |schema|
JSON::Validator.validate(schema_path, input_json, validate_schema: true)
end
end
+
+RSpec::Matchers.define :match_json_values do |values|
+ match do |string|
+ expect(json_str_to_hash(string))
+ .to include(values)
+ end
+
+ failure_message do |value|
+ "expected that #{value} would have the same values as #{values}."
+ end
+end
diff --git a/spec/workers/activitypub/distribute_poll_update_worker_spec.rb b/spec/workers/activitypub/distribute_poll_update_worker_spec.rb
index afe2b291fd0..4427cfdf959 100644
--- a/spec/workers/activitypub/distribute_poll_update_worker_spec.rb
+++ b/spec/workers/activitypub/distribute_poll_update_worker_spec.rb
@@ -16,7 +16,7 @@ describe ActivityPub::DistributePollUpdateWorker do
end
it 'delivers to followers' do
- expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[kind_of(String), account.id, 'http://example.com']]) do
+ expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[match_json_values(type: 'Update'), account.id, 'http://example.com']]) do
subject.perform(status.id)
end
end
diff --git a/spec/workers/activitypub/distribution_worker_spec.rb b/spec/workers/activitypub/distribution_worker_spec.rb
index 2706967fcae..0eb6227859d 100644
--- a/spec/workers/activitypub/distribution_worker_spec.rb
+++ b/spec/workers/activitypub/distribution_worker_spec.rb
@@ -19,7 +19,7 @@ describe ActivityPub::DistributionWorker do
end
it 'delivers to followers' do
- expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[kind_of(String), status.account.id, 'http://example.com', anything]]) do
+ expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[match_json_values(type: 'Create'), status.account.id, 'http://example.com', anything]]) do
subject.perform(status.id)
end
end
@@ -31,7 +31,7 @@ describe ActivityPub::DistributionWorker do
end
it 'delivers to followers' do
- expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[kind_of(String), status.account.id, 'http://example.com', anything]]) do
+ expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[match_json_values(type: 'Create'), status.account.id, 'http://example.com', anything]]) do
subject.perform(status.id)
end
end
@@ -46,7 +46,7 @@ describe ActivityPub::DistributionWorker do
end
it 'delivers to mentioned accounts' do
- expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[kind_of(String), status.account.id, 'https://foo.bar/inbox', anything]]) do
+ expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[match_json_values(type: 'Create'), status.account.id, 'https://foo.bar/inbox', anything]]) do
subject.perform(status.id)
end
end
diff --git a/spec/workers/activitypub/move_distribution_worker_spec.rb b/spec/workers/activitypub/move_distribution_worker_spec.rb
index 75ca21733ce..c810b33c23a 100644
--- a/spec/workers/activitypub/move_distribution_worker_spec.rb
+++ b/spec/workers/activitypub/move_distribution_worker_spec.rb
@@ -16,12 +16,16 @@ describe ActivityPub::MoveDistributionWorker do
end
it 'delivers to followers and known blockers' do
- expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [
- [kind_of(String), migration.account.id, 'http://example.com'],
- [kind_of(String), migration.account.id, 'http://example2.com'],
- ]) do
+ expect_push_bulk_to_match(ActivityPub::DeliveryWorker, expected_migration_deliveries) do
subject.perform(migration.id)
end
end
+
+ def expected_migration_deliveries
+ [
+ [match_json_values(type: 'Move'), migration.account.id, 'http://example.com'],
+ [match_json_values(type: 'Move'), migration.account.id, 'http://example2.com'],
+ ]
+ end
end
end
diff --git a/spec/workers/activitypub/status_update_distribution_worker_spec.rb b/spec/workers/activitypub/status_update_distribution_worker_spec.rb
index a4fd246e534..66e52c4f288 100644
--- a/spec/workers/activitypub/status_update_distribution_worker_spec.rb
+++ b/spec/workers/activitypub/status_update_distribution_worker_spec.rb
@@ -25,7 +25,7 @@ describe ActivityPub::StatusUpdateDistributionWorker do
end
it 'delivers to followers' do
- expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[kind_of(String), status.account.id, 'http://example.com', anything]]) do
+ expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[match_json_values(type: 'Update'), status.account.id, 'http://example.com', anything]]) do
subject.perform(status.id)
end
end
@@ -37,7 +37,7 @@ describe ActivityPub::StatusUpdateDistributionWorker do
end
it 'delivers to followers' do
- expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[kind_of(String), status.account.id, 'http://example.com', anything]]) do
+ expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[match_json_values(type: 'Update'), status.account.id, 'http://example.com', anything]]) do
subject.perform(status.id)
end
end
diff --git a/spec/workers/activitypub/update_distribution_worker_spec.rb b/spec/workers/activitypub/update_distribution_worker_spec.rb
index 4a0ed050bb7..b183a58dfd0 100644
--- a/spec/workers/activitypub/update_distribution_worker_spec.rb
+++ b/spec/workers/activitypub/update_distribution_worker_spec.rb
@@ -14,7 +14,7 @@ describe ActivityPub::UpdateDistributionWorker do
end
it 'delivers to followers' do
- expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[kind_of(String), account.id, 'http://example.com', anything]]) do
+ expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[match_json_values(type: 'Update'), account.id, 'http://example.com', anything]]) do
subject.perform(account.id)
end
end