Class: AuthorizableTest

Inherits:
Minitest::Test
  • Object
show all
Includes:
Rack::Test::Methods
Defined in:
lib/tests/controllers/authorizable_test.rb

Instance Method Summary collapse

Instance Method Details

#appObject



30
31
32
# File 'lib/tests/controllers/authorizable_test.rb', line 30

def app
  Rubee::Application.instance
end

#login_as(email) ⇒ Object



47
48
49
50
# File 'lib/tests/controllers/authorizable_test.rb', line 47

def (email)
  post('/authz/login', { email:, password: '123456' })
  rack_mock_session.cookie_jar["jwt"] = last_response.cookies["jwt"].value.last
end

#setupObject



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/tests/controllers/authorizable_test.rb', line 34

def setup
  User.destroy_all
  Rubee::Autoload.call
  Rubee::Router.draw do |route|
    route.post('/authz/login', to: 'authz#login')
    route.get('/authz/admin_only', to: 'authz#admin_only')
    route.get('/authz/user_only', to: 'authz#user_only')
  end

  User.create(email: 'admin@example.com', password: '123456', role: 1)
  User.create(email: 'user@example.com', password: '123456', role: 0)
end

#test_admin_only_as_adminObject



58
59
60
61
62
63
# File 'lib/tests/controllers/authorizable_test.rb', line 58

def test_admin_only_as_admin
  ('admin@example.com')

  get('/authz/admin_only')
  assert_equal(200, last_response.status)
end

#test_admin_only_as_user_forbiddenObject



65
66
67
68
69
70
# File 'lib/tests/controllers/authorizable_test.rb', line 65

def test_admin_only_as_user_forbidden
  ('user@example.com')

  get('/authz/admin_only')
  assert_equal(403, last_response.status)
end

#test_admin_only_unauthenticatedObject



52
53
54
55
56
# File 'lib/tests/controllers/authorizable_test.rb', line 52

def test_admin_only_unauthenticated
  get('/authz/admin_only')

  assert_equal(403, last_response.status)
end

#test_user_only_as_admin_forbiddenObject



79
80
81
82
83
84
# File 'lib/tests/controllers/authorizable_test.rb', line 79

def test_user_only_as_admin_forbidden
  ('admin@example.com')

  get('/authz/user_only')
  assert_equal(200, last_response.status)
end

#test_user_only_as_userObject



72
73
74
75
76
77
# File 'lib/tests/controllers/authorizable_test.rb', line 72

def test_user_only_as_user
  ('user@example.com')

  get('/authz/user_only')
  assert_equal(200, last_response.status)
end