Skip to content

Commit

Permalink
fix: test warnings (#336)
Browse files Browse the repository at this point in the history
* Basic update

* Fix test warnings

* build: fix multiple warnings

* build: migrate leaderboard controller to 1.7

* build: fix lint errors

* ci: check linting

* fix: test credentials
  • Loading branch information
ruioliveira02 authored Sep 10, 2023
1 parent 75f5d2a commit f686261
Show file tree
Hide file tree
Showing 35 changed files with 126 additions and 132 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/style.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,7 @@ jobs:
- name: Check code formating
run: mix format --check-formatted
if: always()

- name: 🔍 Lint the code
run: mix credo --strict --all
if: always()
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,4 @@ jobs:
elixir-version: ${{matrix.elixir}}

- name: Run the tests
run: mix test
run: mix test --warnings-as-errors
2 changes: 1 addition & 1 deletion config/config.exs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# is restricted to this project.

# General application configuration
use Mix.Config
import Config

config :safira,
ecto_repos: [Safira.Repo],
Expand Down
2 changes: 1 addition & 1 deletion config/dev.exs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use Mix.Config
import Config

# Configure your database
config :safira, Safira.Repo,
Expand Down
2 changes: 1 addition & 1 deletion config/prod.exs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use Mix.Config
import Config

# For production, don't forget to configure the url host
# to something meaningful, Phoenix uses this information
Expand Down
2 changes: 1 addition & 1 deletion config/test.exs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use Mix.Config
import Config

# We don't run a server during test. If one is required,
# you can enable the server option below.
Expand Down
2 changes: 1 addition & 1 deletion config/travis.exs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use Mix.Config
import Config

# We don't run a server during test. If one is required,
# you can enable the server option below.
Expand Down
2 changes: 1 addition & 1 deletion lib/mix/tasks/export.attendees.entries.ex
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ defmodule Mix.Tasks.Export.Attendees.Entries do
write_csv(List.first(args), :separate)

true ->
Mix.shell().info("Second argument must be equal to \"Aggregate\" and \"Separate\"")
Mix.shell().info(~s(Second argument must be equal to "Aggregate" and "Separate"))
end
end

Expand Down
25 changes: 11 additions & 14 deletions lib/mix/tasks/export.cv.entries.ex
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,18 @@ defmodule Mix.Tasks.Export.Cv.Entries do
def run(args) do
Mix.Task.run("app.start")

cond do
length(args) != 1 ->
Mix.shell().info("Must receive one argument: the path of the file to export the data to")
if length(args) == 1 do
file = List.first(args)

true ->
file = List.first(args)

data =
Accounts.list_active_attendees()
|> Enum.filter(fn at -> at.cv != nil end)
|> Enum.with_index()
|> Enum.map(&attendee_row/1)
|> then(fn list -> ["id,uuid,name,email" | list] end)
|> Enum.intersperse("\n")
|> then(fn data -> File.write!(file, data) end)
Accounts.list_active_attendees()
|> Enum.filter(fn at -> at.cv != nil end)
|> Enum.with_index()
|> Enum.map(&attendee_row/1)
|> then(fn list -> ["id,uuid,name,email" | list] end)
|> Enum.intersperse("\n")
|> then(fn data -> File.write!(file, data) end)
else
Mix.shell().info("Must receive one argument: the path of the file to export the data to")
end
end

Expand Down
9 changes: 5 additions & 4 deletions lib/mix/tasks/gift.all_gold.badge.ex
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ defmodule Mix.Tasks.Gift.AllGold.Badge do

import Ecto.Query, warn: false

alias Safira.Contest
alias Safira.Contest.Redeem
alias Safira.Accounts.Attendee
alias Safira.Accounts.Company

alias Safira.Contest
alias Safira.Contest.Badge
alias Safira.Accounts.Attendee
alias Safira.Contest.Redeem

alias Safira.Repo

def run(args) when length(args) == 1 do
Expand Down Expand Up @@ -43,7 +45,6 @@ defmodule Mix.Tasks.Gift.AllGold.Badge do
|> select([b, c, r, a], a.id)
|> Repo.all()

# TODO: Multi transaction
attendees
|> Enum.each(fn id ->
Contest.create_redeem(%{attendee_id: id, badge_id: badge_id, manager_id: 1}, :admin)
Expand Down
2 changes: 0 additions & 2 deletions lib/safira_web/controllers/badge_controller.ex
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ defmodule SafiraWeb.BadgeController do
use SafiraWeb, controller: "1.6"

alias Safira.Accounts
alias Safira.Accounts.User

alias Safira.Contest

action_fallback SafiraWeb.FallbackController
Expand Down
3 changes: 1 addition & 2 deletions lib/safira_web/controllers/cv_controller.ex
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ defmodule SafiraWeb.CVController do
|> Enum.map(fn x ->
Zstream.entry(
x.nickname <> ".pdf",
CV.url({x.cv, x})
|> (fn url -> System.get_env("CV_URL", "") <> url end).()
"#{System.get_env("CV_URL", "")}#{CV.url({x.cv, x})}"
|> HTTPStream.get()
)
end)
Expand Down
2 changes: 0 additions & 2 deletions lib/safira_web/controllers/deliver_redeemable_controller.ex
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ defmodule SafiraWeb.DeliverRedeemableController do

alias Safira.Store

alias Safira.Contest

action_fallback SafiraWeb.FallbackController

# redeem params:
Expand Down
6 changes: 3 additions & 3 deletions lib/safira_web/controllers/leaderboard_controller.ex
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
defmodule SafiraWeb.LeaderboardController do
use SafiraWeb, controller: "1.6"
use SafiraWeb, :controller

alias Safira.Contest

Expand All @@ -18,7 +18,7 @@ defmodule SafiraWeb.LeaderboardController do
end)
|> Enum.map(fn a -> Map.put(a.attendee, :badge_count, a.badge_count) end)

render(conn, SafiraWeb.LeaderboardView, "index.json", attendees: attendees)
render(conn, :index, attendees: attendees)
end

def daily(conn, %{"date" => date_params}) do
Expand All @@ -36,7 +36,7 @@ defmodule SafiraWeb.LeaderboardController do
end)
|> Enum.map(fn a -> Map.put(a.attendee, :badge_count, a.badge_count) end)

render(conn, SafiraWeb.LeaderboardView, "index.json", attendees: attendees)
render(conn, :index, attendees: attendees)

{:error, _error} ->
conn
Expand Down
20 changes: 20 additions & 0 deletions lib/safira_web/controllers/leaderboard_json.ex
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
defmodule SafiraWeb.LeaderboardJSON do
@moduledoc false

alias Safira.Avatar

def index(%{attendees: attendees}) do
%{data: for(at <- attendees, do: attendee(%{attendee: at}))}
end

def attendee(%{attendee: attendee}) do
%{
id: attendee.id,
nickname: attendee.nickname,
name: attendee.name,
avatar: Avatar.url({attendee.avatar, attendee}, :original),
badges: attendee.badge_count,
token_balance: attendee.token_balance
}
end
end
1 change: 0 additions & 1 deletion lib/safira_web/controllers/redeem_controller.ex
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ defmodule SafiraWeb.RedeemController do
use SafiraWeb, controller: "1.6"

alias Safira.Accounts
alias Safira.Accounts.User

alias Safira.Contest
alias Safira.Contest.Redeem
Expand Down
4 changes: 2 additions & 2 deletions lib/safira_web/templates/layout/app.html.eex
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
</section>
</header>
<main role="main" class="container">
<p class="alert alert-info" role="alert"><%= get_flash(@conn, :info) %></p>
<p class="alert alert-danger" role="alert"><%= get_flash(@conn, :error) %></p>
<p class="alert alert-info" role="alert"><%= Phoenix.Flash.get(@conn, :info) %></p>
<p class="alert alert-danger" role="alert"><%= Phoenix.Flash.get(@conn, :error) %></p>
<%= render @view_module, @view_template, assigns %>
</main>
<script type="text/javascript" src="<%= Routes.static_path(@conn, "/js/app.js") %>"></script>
Expand Down
22 changes: 0 additions & 22 deletions lib/safira_web/views/leaderboard_view.ex

This file was deleted.

40 changes: 20 additions & 20 deletions test/safira/contest_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ defmodule Safira.ContestTest do
b1 = insert(:badge, type: 1)
b2 = insert(:badge, type: 2)
b3 = insert(:badge, type: 3)
b4 = insert(:badge, type: 4)
b5 = insert(:badge, type: 3, begin_badge: Faker.DateTime.forward(2))
insert(:badge, type: 4)
insert(:badge, type: 3, begin_badge: Faker.DateTime.forward(2))
assert Contest.list_available_badges() == [b0, b1, b2, b3]
end
end
Expand Down Expand Up @@ -60,9 +60,9 @@ defmodule Safira.ContestTest do
b2 = insert(:badge, type: 2)
a1 = insert(:attendee)
a2 = insert(:attendee)
r1 = insert(:redeem, badge: b1, attendee: a1)
r2 = insert(:redeem, badge: b1, attendee: a2)
r3 = insert(:redeem, badge: b2)
insert(:redeem, badge: b1, attendee: a1)
insert(:redeem, badge: b1, attendee: a2)
insert(:redeem, badge: b2)

assert Contest.list_secret() == [b1]
end
Expand All @@ -81,9 +81,9 @@ defmodule Safira.ContestTest do
b5 = insert(:badge, type: 3, begin_badge: Faker.DateTime.forward(2))
a1 = insert(:attendee)
a2 = insert(:attendee)
r1 = insert(:redeem, badge: b1, attendee: a1)
r2 = insert(:redeem, badge: b1, attendee: a2)
r3 = insert(:redeem, badge: b2)
insert(:redeem, badge: b1, attendee: a1)
insert(:redeem, badge: b1, attendee: a2)
insert(:redeem, badge: b2)

assert Contest.list_badges_conservative() == [b1, b2, b3, b4, b5]
end
Expand Down Expand Up @@ -118,7 +118,7 @@ defmodule Safira.ContestTest do
end

test "Wrong name" do
badge = insert(:badge)
insert(:badge)

assert_raise Ecto.NoResultsError, fn ->
Contest.get_badge_name!("wrong name")
Expand Down Expand Up @@ -148,7 +148,7 @@ defmodule Safira.ContestTest do

test "Exists" do
a1 = insert(:attendee)
a2 = insert(:attendee)
insert(:attendee)
a3 = insert(:attendee)

badge = insert(:badge)
Expand All @@ -168,7 +168,7 @@ defmodule Safira.ContestTest do
end

test "Wrong id" do
badge = insert(:badge)
insert(:badge)

assert_raise Ecto.NoResultsError, fn ->
Contest.get_badge_description("No such badge")
Expand Down Expand Up @@ -310,7 +310,7 @@ defmodule Safira.ContestTest do
end

test "doesn't exist" do
r1 = insert(:referral)
insert(:referral)

assert_raise Ecto.NoResultsError, fn -> Contest.get_referral!(Ecto.UUID.generate()) end
end
Expand All @@ -323,7 +323,7 @@ defmodule Safira.ContestTest do
end

test "doesn't exist" do
r1 = insert(:referral)
insert(:referral)

assert_raise Ecto.NoResultsError, fn ->
Contest.get_referral_preload!(Ecto.UUID.generate())
Expand All @@ -339,7 +339,7 @@ defmodule Safira.ContestTest do
end

test "doesn't exist" do
r1 = insert(:referral)
insert(:referral)

assert_raise Ecto.NoResultsError, fn ->
Contest.get_referral_preload!(Ecto.UUID.generate())
Expand Down Expand Up @@ -573,7 +573,7 @@ defmodule Safira.ContestTest do
test "multiple people" do
at1 = insert(:attendee)
at2 = insert(:attendee)
at3 = insert(:attendee)
insert(:attendee)
b1 = insert(:badge, type: 7)
b2 = insert(:badge, type: 7)
insert(:daily_token, attendee: at1)
Expand All @@ -593,7 +593,7 @@ defmodule Safira.ContestTest do
test "multiple people" do
at1 = insert(:attendee)
at2 = insert(:attendee)
at3 = insert(:attendee)
insert(:attendee)

insert(:daily_token, attendee: at1)
insert(:daily_token, attendee: at2)
Expand All @@ -614,15 +614,15 @@ defmodule Safira.ContestTest do
test "multiple people" do
at1 = insert(:attendee)
at2 = insert(:attendee)
at3 = insert(:attendee)
insert(:attendee)

insert(:daily_token, attendee: at1)
insert(:daily_token, attendee: at2)
r1 = insert(:redeem, attendee: at1)
insert(:redeem, attendee: at1)

for _n <- Enum.to_list(1..10) do
r2 = insert(:redeem, attendee: at1)
r3 = insert(:redeem, attendee: at2)
insert(:redeem, attendee: at1)
insert(:redeem, attendee: at2)
end

assert Contest.get_winner() |> length() == 21
Expand Down
9 changes: 6 additions & 3 deletions test/safira/store_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ defmodule Safira.StoreTest do
insert(:redeemable, is_redeemable: true, stock: 0)
|> Map.put(:can_buy, 0)

r3 = insert(:redeemable, is_redeemable: false)
insert(:redeemable, is_redeemable: false)

assert Store.list_store_redeemables(at) == [r1, r2]
end
Expand Down Expand Up @@ -116,7 +116,7 @@ defmodule Safira.StoreTest do
end

test "Invalid data" do
{:error, changeset} = Store.create_redeemable(params_for(:redeemable, max_per_user: -1))
{:error, _changeset} = Store.create_redeemable(params_for(:redeemable, max_per_user: -1))
assert Store.list_redeemables() == []
end
end
Expand All @@ -130,7 +130,10 @@ defmodule Safira.StoreTest do

test "Invalid data" do
r1 = insert(:redeemable)
{:error, changeset} = Store.update_redeemable(r1, params_for(:redeemable, max_per_user: -1))

{:error, _changeset} =
Store.update_redeemable(r1, params_for(:redeemable, max_per_user: -1))

assert Store.list_redeemables() == [r1]
end
end
Expand Down
Loading

0 comments on commit f686261

Please sign in to comment.