From 0568b69cbb73c4984983479f760e95b770f9dc34 Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Fri, 2 Feb 2018 14:37:20 -0500 Subject: [PATCH] Move user creation in tests to a factory --- test/features/games_test.exs | 11 +---------- test/features/session_test.exs | 11 +---------- test/support/factory.ex | 12 ++++++++++++ 3 files changed, 14 insertions(+), 20 deletions(-) create mode 100644 test/support/factory.ex diff --git a/test/features/games_test.exs b/test/features/games_test.exs index 665a98e..2773872 100644 --- a/test/features/games_test.exs +++ b/test/features/games_test.exs @@ -2,8 +2,7 @@ defmodule Chess.GamesTest do use ChessWeb.FeatureCase import Wallaby.Query, only: [css: 1, css: 2, button: 1, text_field: 1] - - alias Chess.Auth.User + import Chess.Factory, only: [create_user: 0] test "visit homepage", %{session: session} do session @@ -44,14 +43,6 @@ defmodule Chess.GamesTest do |> click(button("Log in")) end - defp create_user() do - changeset = User.changeset( - %User{}, - %{username: "link@hyrule.kingdom", password: "ilovezelda"} - ) - Repo.insert!(changeset) - end - defp create_game(session) do session |> visit("/games") diff --git a/test/features/session_test.exs b/test/features/session_test.exs index d8fa144..8fa73fe 100644 --- a/test/features/session_test.exs +++ b/test/features/session_test.exs @@ -1,9 +1,8 @@ defmodule Chess.SessionTest do use ChessWeb.FeatureCase - alias Chess.Auth.User - import Wallaby.Query, only: [text_field: 1, link: 1, button: 1] + import Chess.Factory, only: [create_user: 0] test "user cannot log in with incorrect username", %{session: session} do create_user() @@ -62,12 +61,4 @@ defmodule Chess.SessionTest do assert session |> has_text?("You are logged out") end - - defp create_user() do - changeset = User.changeset( - %User{}, - %{username: "link@hyrule.kingdom", password: "ilovezelda"} - ) - Repo.insert!(changeset) - end end diff --git a/test/support/factory.ex b/test/support/factory.ex new file mode 100644 index 0000000..1ca19af --- /dev/null +++ b/test/support/factory.ex @@ -0,0 +1,12 @@ +defmodule Chess.Factory do + alias Chess.Auth.User + alias Chess.Repo + + def create_user do + User.changeset( + %User{}, + %{username: "link@hyrule.kingdom", password: "ilovezelda"} + ) + |> Repo.insert! + end +end