require "test_helper"

class Admin::UsersControllerTest < ActionDispatch::IntegrationTest
  test "should redirect when not login" do
    get admin_users_path
    assert_response :redirect
  end

  test "should view admin users index when login" do
    post login_path, params: {user: {
      email: users(:user_one).email,
      password: "12345678"
    }}

    get admin_users_path
    assert_response :success
  end

  test "should paginate users data" do
    post login_path, params: {user: {
      email: users(:user_one).email,
      password: "12345678"
    }}

    follow_redirect!

    get admin_users_path

    @users = @controller.instance_variable_get(:@users)
    assert_equal 20, @users.size
  end

  test "admin user trashed page ok" do
    post login_path, params: {user: {
      email: users(:user_one).email,
      password: "12345678"
    }}

    follow_redirect!

    get trashed_admin_users_path
    assert_response :success
  end

  test "should delete a user with given user id" do
    post login_path, params: {user: {
      email: users(:user_one).email,
      password: "12345678"
    }}

    follow_redirect!

    user_2 = users(:user_two)

    assert_difference "User.count", -1 do
      delete admin_user_path(user_2)
    end
  end
end
