############################################################################### # The contents of this file are subject to the Common Public Attribution # License Version 1.0. (the "License"); you may not use this file except in # compliance with the License. You may obtain a copy of the License at # https://raw.githubusercontent.com/udia-software/udia/master/LICENSE. # The License is based on the Mozilla Public License Version 1.1, but # Sections 14 and 15 have been added to cover use of software over a computer # network and provide for limited attribution for the Original Developer. # In addition, Exhibit A has been modified to be consistent with Exhibit B. # # Software distributed under the License is distributed on an "AS IS" basis, # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for # the specific language governing rights and limitations under the License. # # The Original Code is UDIA. # # The Original Developer is the Initial Developer. The Initial Developer of # the Original Code is Udia Software Incorporated. # # All portions of the code written by UDIA are Copyright (c) 2016-2017 # Udia Software Incorporated. All Rights Reserved. ############################################################################### defmodule Udia.Web.CategoryControllerTest do use Udia.Web.ConnCase alias Udia.Logs alias Udia.Logs.Category @create_attrs %{name: "some name"} @update_attrs %{name: "some updated name"} @invalid_attrs %{} setup %{conn: conn} = config do if username = config[:login_as] do user = insert_user(username: username) conn = assign(build_conn(), :current_user, user) {:ok, conn: conn, user: user} else :ok end end def fixture(:category) do {:ok, category} = Logs.create_category(@create_attrs) category end @tag login_as: "samwell" test "lists all entries on index", %{conn: conn} do conn = get conn, category_path(conn, :index) assert html_response(conn, 200) =~ "Listing Categories" end @tag login_as: "samwell" test "renders form for new categories", %{conn: conn} do conn = get conn, category_path(conn, :new) assert html_response(conn, 200) =~ "New Category" end @tag login_as: "samwell" test "creates category and redirects to show when data is valid", %{conn: conn} do conn = post conn, category_path(conn, :create), category: @create_attrs assert %{id: id} = redirected_params(conn) assert redirected_to(conn) == category_path(conn, :show, id) assert Repo.get_by(Category, @create_attrs) end @tag login_as: "samwell" test "does not create category and renders errors when data is invalid", %{conn: conn} do conn = post conn, category_path(conn, :create), category: @invalid_attrs assert html_response(conn, 200) =~ "New Category" end @tag login_as: "samwell" test "renders form for editing chosen category", %{conn: conn} do category = fixture(:category) conn = get conn, category_path(conn, :edit, category) assert html_response(conn, 200) =~ "Edit Category" end @tag login_as: "samwell" test "updates chosen category and redirects when data is valid", %{conn: conn} do category = fixture(:category) conn = put conn, category_path(conn, :update, category), category: @update_attrs assert redirected_to(conn) == category_path(conn, :show, category) assert Repo.get_by(Category, @update_attrs) end @tag login_as: "samwell" test "does not update chosen category and renders errors when data is invalid", %{conn: conn} do category = fixture(:category) conn = put conn, category_path(conn, :update, category), category: @invalid_attrs assert redirected_to(conn) == category_path(conn, :show, category) end @tag login_as: "samwell" test "deletes chosen category", %{conn: conn} do category = fixture(:category) conn = delete conn, category_path(conn, :delete, category) assert redirected_to(conn) == category_path(conn, :index) refute Repo.get(Category, category.id) end end