From 979e2e4d5f76f0a4410059e344bc59dbc91b3b8f Mon Sep 17 00:00:00 2001 From: Earlopain <14981592+Earlopain@users.noreply.github.com> Date: Sun, 17 Mar 2024 18:31:38 +0100 Subject: [PATCH] [Tests] Add basic tests for takedowns Would have ccaught the breakage from frozen string literals --- test/factories/takedown.rb | 11 ++++++++ test/functional/takedowns_controller_test.rb | 29 ++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 test/factories/takedown.rb create mode 100644 test/functional/takedowns_controller_test.rb diff --git a/test/factories/takedown.rb b/test/factories/takedown.rb new file mode 100644 index 000000000..cb8fc8a15 --- /dev/null +++ b/test/factories/takedown.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +FactoryBot.define do + factory(:takedown) do + creator_ip_addr { "127.0.0.1" } + email { "dummy@example.com" } + source { "example.com" } + reason { "foo" } + instructions { "bar" } + end +end diff --git a/test/functional/takedowns_controller_test.rb b/test/functional/takedowns_controller_test.rb new file mode 100644 index 000000000..356ebf5c8 --- /dev/null +++ b/test/functional/takedowns_controller_test.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +require "test_helper" + +class TakedownsControllerTest < ActionDispatch::IntegrationTest + should "render the index" do + create_list(:takedown, 2) + get takedowns_path + + assert_response :success + end + + should "render the index for admins" do + create_list(:takedown, 2) + get_auth takedowns_path, create(:admin_user) + + assert_response :success + end + + should "allow creation" do + takedown_post = create(:post) + post takedowns_path, params: { takedown: { email: "dummy@example.com", reason: "foo", post_ids: "#{takedown_post.id} #{takedown_post.id + 1}" }, format: :json } + + takedown = Takedown.last + assert_redirected_to takedown_path(takedown, code: takedown.vericode) + assert_equal(takedown_post.id.to_s, takedown.post_ids) + assert_operator(takedown.vericode.length, :>, 8) + end +end