fix flaky test filter_controller_test.exs:200

This commit is contained in:
Ilja 2022-08-24 15:24:57 +00:00 committed by tusooa
parent 0814d0e0cb
commit 5b2e3a303c

View file

@ -3,9 +3,10 @@
# SPDX-License-Identifier: AGPL-3.0-only # SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.MastodonAPI.FilterControllerTest do defmodule Pleroma.Web.MastodonAPI.FilterControllerTest do
use Pleroma.Web.ConnCase, async: true use Pleroma.Web.ConnCase, async: false
use Oban.Testing, repo: Pleroma.Repo use Oban.Testing, repo: Pleroma.Repo
import Mock
import Pleroma.Factory import Pleroma.Factory
alias Pleroma.Filter alias Pleroma.Filter
@ -53,24 +54,19 @@ defmodule Pleroma.Web.MastodonAPI.FilterControllerTest do
in_seconds = 600 in_seconds = 600
response = response =
conn with_mock NaiveDateTime, [:passthrough], utc_now: fn -> ~N[2017-03-17 17:09:58] end do
|> put_req_header("content-type", "application/json") conn
|> post("/api/v1/filters", %{ |> put_req_header("content-type", "application/json")
"phrase" => "knights", |> post("/api/v1/filters", %{
context: ["home"], "phrase" => "knights",
expires_in: in_seconds context: ["home"],
}) expires_in: in_seconds
|> json_response_and_validate_schema(200) })
|> json_response_and_validate_schema(200)
end
assert response["irreversible"] == false assert response["irreversible"] == false
assert response["expires_at"] == "2017-03-17T17:19:58.000Z"
expected_expiration =
NaiveDateTime.utc_now()
|> NaiveDateTime.add(in_seconds)
{:ok, actual_expiration} = NaiveDateTime.from_iso8601(response["expires_at"])
assert abs(NaiveDateTime.diff(expected_expiration, actual_expiration)) <= 5
filter = Filter.get(response["id"], user) filter = Filter.get(response["id"], user)
@ -177,28 +173,25 @@ defmodule Pleroma.Web.MastodonAPI.FilterControllerTest do
assert response["whole_word"] == true assert response["whole_word"] == true
end end
@tag :erratic
test "with adding expires_at", %{conn: conn, user: user} do test "with adding expires_at", %{conn: conn, user: user} do
filter = insert(:filter, user: user) filter = insert(:filter, user: user)
in_seconds = 600 in_seconds = 600
response = response =
conn with_mock NaiveDateTime, [:passthrough], utc_now: fn -> ~N[2017-03-17 17:09:58] end do
|> put_req_header("content-type", "application/json") conn
|> put("/api/v1/filters/#{filter.filter_id}", %{ |> put_req_header("content-type", "application/json")
phrase: "nii", |> put("/api/v1/filters/#{filter.filter_id}", %{
context: ["public"], phrase: "nii",
expires_in: in_seconds, context: ["public"],
irreversible: true expires_in: in_seconds,
}) irreversible: true
|> json_response_and_validate_schema(200) })
|> json_response_and_validate_schema(200)
end
assert response["irreversible"] == true assert response["irreversible"] == true
assert response["expires_at"] == "2017-03-17T17:19:58.000Z"
assert response["expires_at"] ==
NaiveDateTime.utc_now()
|> NaiveDateTime.add(in_seconds)
|> Pleroma.Web.CommonAPI.Utils.to_masto_date()
filter = Filter.get(response["id"], user) filter = Filter.get(response["id"], user)