auth0 2.1.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/.bundle/config +2 -0
  3. data/.gitignore +5 -2
  4. data/.rspec +3 -0
  5. data/Gemfile +1 -1
  6. data/Gemfile.lock +68 -0
  7. data/auth0.gemspec +11 -10
  8. data/doc/Auth0/AccessDenied.html +142 -0
  9. data/doc/Auth0/Api/AuthenticationEndpoints.html +592 -0
  10. data/doc/Auth0/Api/V1/Clients.html +440 -0
  11. data/doc/Auth0/Api/V1/Connections.html +506 -0
  12. data/doc/Auth0/Api/V1/Logs.html +366 -0
  13. data/doc/Auth0/Api/V1/Rules.html +439 -0
  14. data/doc/Auth0/Api/V1/Users.html +1617 -0
  15. data/doc/Auth0/Api/V1.html +188 -0
  16. data/doc/Auth0/Api/V2/Blacklists.html +268 -0
  17. data/doc/Auth0/Api/V2/Clients.html +477 -0
  18. data/doc/Auth0/Api/V2/Jobs.html +277 -0
  19. data/doc/Auth0/Api/V2/Router.html +109 -0
  20. data/doc/Auth0/Api/V2/Stats.html +268 -0
  21. data/doc/Auth0/Api/V2/Users.html +652 -0
  22. data/doc/Auth0/Api/V2.html +193 -0
  23. data/doc/Auth0/Api.html +128 -0
  24. data/doc/Auth0/BadRequest.html +142 -0
  25. data/doc/Auth0/Client.html +164 -0
  26. data/doc/Auth0/Exception.html +140 -0
  27. data/doc/Auth0/InvalidParameter.html +142 -0
  28. data/doc/Auth0/Mixins/HTTPartyProxy.html +121 -0
  29. data/doc/Auth0/Mixins/Initializer.html +312 -0
  30. data/doc/Auth0/Mixins.html +153 -0
  31. data/doc/Auth0/NotFound.html +143 -0
  32. data/doc/Auth0/ServerError.html +142 -0
  33. data/doc/Auth0/Unauthorized.html +143 -0
  34. data/doc/Auth0/Unsupported.html +142 -0
  35. data/doc/Auth0/UserIdIsBlank.html +143 -0
  36. data/doc/Auth0.html +153 -0
  37. data/doc/Auth0Client.html +163 -0
  38. data/doc/_index.html +418 -0
  39. data/doc/class_list.html +58 -0
  40. data/doc/css/common.css +1 -0
  41. data/doc/css/full_list.css +57 -0
  42. data/doc/css/style.css +339 -0
  43. data/doc/file.README.html +103 -0
  44. data/doc/file_list.html +60 -0
  45. data/doc/frames.html +26 -0
  46. data/doc/index.html +103 -0
  47. data/doc/js/app.js +219 -0
  48. data/doc/js/full_list.js +181 -0
  49. data/doc/js/jquery.js +4 -0
  50. data/doc/method_list.html +435 -0
  51. data/doc/top-level-namespace.html +114 -0
  52. data/lib/auth0/api/authentication_endpoints.rb +71 -0
  53. data/lib/auth0/api/v1/clients.rb +48 -0
  54. data/lib/auth0/api/v1/connections.rb +51 -0
  55. data/lib/auth0/api/v1/logs.rb +41 -0
  56. data/lib/auth0/api/v1/rules.rb +44 -0
  57. data/lib/auth0/api/v1/users.rb +163 -0
  58. data/lib/auth0/api/v1.rb +19 -0
  59. data/lib/auth0/api/v2/blacklists.rb +24 -0
  60. data/lib/auth0/api/v2/clients.rb +41 -0
  61. data/lib/auth0/api/v2/jobs.rb +20 -0
  62. data/lib/auth0/api/v2/stats.rb +24 -0
  63. data/lib/auth0/api/v2/users.rb +67 -0
  64. data/lib/auth0/api/v2.rb +17 -0
  65. data/lib/auth0/client.rb +5 -48
  66. data/lib/auth0/exception.rb +22 -0
  67. data/lib/auth0/mixins/httparty_proxy.rb +35 -0
  68. data/lib/auth0/mixins/initializer.rb +34 -0
  69. data/lib/auth0/mixins.rb +12 -0
  70. data/lib/auth0/version.rb +3 -2
  71. data/lib/auth0.rb +6 -1
  72. data/lib/auth0_client.rb +3 -0
  73. data/spec/lib/auth0/api/authentication_endpoints_spec.rb +56 -0
  74. data/spec/lib/auth0/api/v1/clients_spec.rb +62 -0
  75. data/spec/lib/auth0/api/v1/connections_spec.rb +62 -0
  76. data/spec/lib/auth0/api/v1/logs_spec.rb +46 -0
  77. data/spec/lib/auth0/api/v1/rules_spec.rb +40 -0
  78. data/spec/lib/auth0/api/v1/users_spec.rb +217 -0
  79. data/spec/lib/auth0/api/v2/blacklists_spec.rb +24 -0
  80. data/spec/lib/auth0/api/v2/clients_spec.rb +54 -0
  81. data/spec/lib/auth0/api/v2/jobs_spec.rb +21 -0
  82. data/spec/lib/auth0/api/v2/stats_spec.rb +22 -0
  83. data/spec/lib/auth0/api/v2/users_spec.rb +72 -0
  84. data/spec/lib/auth0/client_spec.rb +47 -0
  85. data/spec/lib/auth0/mixins/httparty_proxy_spec.rb +119 -0
  86. data/spec/lib/auth0_client_spec.rb +8 -0
  87. data/spec/spec_helper.rb +8 -7
  88. data/spec/support/dummy_class.rb +7 -0
  89. data/spec/support/dummy_class_for_proxy.rb +4 -0
  90. data/spec/support/stub_response.rb +2 -0
  91. metadata +159 -28
  92. data/lib/omniauth/strategies/auth0.rb +0 -62
  93. data/spec/omniauth/strategies/auth0_spec.rb +0 -149
@@ -0,0 +1,12 @@
1
+ require 'httparty'
2
+ require 'uri'
3
+ require "auth0/mixins/httparty_proxy"
4
+ require "auth0/mixins/initializer"
5
+ require "auth0/api/authentication_endpoints"
6
+ require "auth0/api/v1"
7
+ require "auth0/api/v2"
8
+ # Collecting dependencies here
9
+ module Auth0::Mixins
10
+ include Auth0::Mixins::HTTPartyProxy
11
+ include Auth0::Mixins::Initializer
12
+ end
data/lib/auth0/version.rb CHANGED
@@ -1,3 +1,4 @@
1
1
  module Auth0
2
- VERSION = "2.1.1"
3
- end
2
+ # current version of gem
3
+ VERSION = "3.0.0"
4
+ end
data/lib/auth0.rb CHANGED
@@ -1,3 +1,8 @@
1
1
  require "auth0/version"
2
+ require "auth0/mixins"
3
+ require "auth0/exception"
2
4
  require "auth0/client"
3
- require "omniauth/strategies/auth0"
5
+ require "auth0_client"
6
+ # Namespace for ruby-auth0 logic
7
+ module Auth0
8
+ end
@@ -0,0 +1,3 @@
1
+ # This class is made for backward compatibility of gem
2
+ class Auth0Client < Auth0::Client
3
+ end
@@ -0,0 +1,56 @@
1
+ require "spec_helper"
2
+ describe Auth0::Api::AuthenticationEndpoints do
3
+ before :all do
4
+ dummy_instance = DummyClass.new
5
+ dummy_instance.extend(Auth0::Api::AuthenticationEndpoints)
6
+ @instance = dummy_instance
7
+ end
8
+
9
+ context ".obtain_access_token" do
10
+ it {expect(@instance).to respond_to(:obtain_access_token)}
11
+ it "is expected to make post request to '/oauth/token'" do
12
+ allow(@instance).to receive(:post).with("/oauth/token", {client_id: nil, client_secret: nil, grant_type: 'client_credentials'}).
13
+ and_return({"access_token" => "AccessToken"})
14
+ expect(@instance).to receive(:post).with("/oauth/token", {client_id: nil, client_secret: nil, grant_type: 'client_credentials'})
15
+ expect(@instance.obtain_access_token).to eql "AccessToken"
16
+ end
17
+ end
18
+
19
+ context ".delegation" do
20
+ it {expect(@instance).to respond_to(:delegation)}
21
+ it "is expected to make post request to '/delegation'" do
22
+ expect(@instance).to receive(:post).with("/delegation",{:client_id=>nil, :grant_type=>"urn:ietf:params:oauth:grant-type:jwt-bearer", :id_token=>"token", :target=>"target", :scope=>""})
23
+ @instance.delegation("token", "target", "")
24
+ end
25
+ end
26
+
27
+ context ".login" do
28
+ it {expect(@instance).to respond_to(:signup)}
29
+ it "is expected to make post to /oauth/ro" do
30
+ expect(@instance).to receive(:post).with("/oauth/ro", {client_id: nil, username:"test@test.com", password: "password", connection: "Username-Password-Authentication", scope: "openid", grand_type: "password", id_token: nil})
31
+ @instance.login("test@test.com", "password")
32
+ end
33
+ end
34
+ context ".signup" do
35
+ it {expect(@instance).to respond_to(:signup)}
36
+ it "is expected to make post to /dbconnections/signup" do
37
+ expect(@instance).to receive(:post).with("/dbconnections/signup", {client_id: nil, email: "test@test.com", password: "password", connection: "User"})
38
+ @instance.signup("test@test.com", "password", "User")
39
+ end
40
+ end
41
+ context ".change_password" do
42
+ it {expect(@instance).to respond_to(:change_password)}
43
+ it "is expected to make post to /dbconnections/change_password" do
44
+ expect(@instance).to receive(:post).with("/dbconnections/change_password", {client_id: nil, email: "test@test.com", password: "password", connection: "User"})
45
+ @instance.change_password("test@test.com", "password", "User")
46
+ end
47
+ end
48
+
49
+ context ".token_info" do
50
+ it {expect(@instance).to respond_to(:token_info)}
51
+ it "is expected to make post to /tokeinfo" do
52
+ expect(@instance).to receive(:post).with("/tokeninfo", {id_token: "SomerandomToken"})
53
+ @instance.token_info("SomerandomToken")
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,62 @@
1
+ require "spec_helper"
2
+ describe Auth0::Api::V1::Clients do
3
+ before :all do
4
+ dummy_instance = DummyClass.new
5
+ dummy_instance.extend(Auth0::Api::V1::Clients)
6
+ @instance = dummy_instance
7
+ end
8
+
9
+ context ".clients" do
10
+ it {expect(@instance).to respond_to(:clients)}
11
+ it "is expected to send get request to /api/clients" do
12
+ expect(@instance).to receive(:get).with("/api/clients")
13
+ expect{@instance.clients}.not_to raise_error
14
+ end
15
+ end
16
+
17
+ context ".create_client" do
18
+ it {expect(@instance).to respond_to(:create_client)}
19
+ it "is expected to send post request to /api/clients" do
20
+ client_name = "ClientRandomName"
21
+ callbacks = "Some absolutely random stuff here"
22
+ expect(@instance).to receive(:post).with("/api/clients",{name: client_name, callbacks: callbacks})
23
+ expect{@instance.create_client(client_name, callbacks)}.not_to raise_error
24
+ end
25
+ end
26
+
27
+ context ".create_client" do
28
+ it {expect(@instance).to respond_to(:create_client)}
29
+ it "is expected to send post request to /api/clients" do
30
+ client_name = "Some random name"
31
+ callbacks = "Some random stuff"
32
+ expect(@instance).to receive(:post).with("/api/clients",{name: client_name, callbacks: callbacks})
33
+ expect{@instance.create_client(client_name, callbacks)}.not_to raise_error
34
+ end
35
+ end
36
+
37
+ context ".update_client" do
38
+ it {expect(@instance).to respond_to(:update_client)}
39
+ it "is expected to perform put to /api/clients/#client_id" do
40
+ client_name = "Some random name"
41
+ callbacks = "Some random stuff"
42
+ expect(@instance).to receive(:put).with("/api/clients/client_id",{name: client_name, callbacks: callbacks})
43
+ expect{@instance.update_client(client_name, callbacks, "client_id")}.not_to raise_error
44
+ end
45
+
46
+ it "is expected to make warn on deprecated endpoint" do
47
+ expect(@instance).to receive(:warn).with("This endpoint has been deprecated in favor of PUT.")
48
+ @instance.update_client("test")
49
+ end
50
+ end
51
+
52
+ context ".patch_client" do
53
+ it {expect(@instance).to respond_to(:patch_client)}
54
+ it "is expected to perform patch to /api/clients/#client_id" do
55
+ client_name = "Some random name"
56
+ callbacks = "Some random stuff"
57
+ expect(@instance).to receive(:patch).with("/api/clients/client_id",{name: client_name, callbacks: callbacks})
58
+ expect{@instance.patch_client(client_name, callbacks, "client_id")}.not_to raise_error
59
+ end
60
+ end
61
+
62
+ end
@@ -0,0 +1,62 @@
1
+ require "spec_helper"
2
+ describe Auth0::Api::V1::Connections do
3
+ before :all do
4
+ dummy_instance = DummyClass.new
5
+ dummy_instance.extend(Auth0::Api::V1::Connections)
6
+ dummy_instance.extend(Auth0::Mixins::Initializer)
7
+ @instance = dummy_instance
8
+ end
9
+
10
+ context ".connections" do
11
+ it {expect(@instance).to respond_to(:connections)}
12
+ it {expect(@instance).to respond_to(:get_connections)}
13
+ it "is expected to send get request to /api/connections" do
14
+ expect(@instance).to receive(:get).with("/api/connections")
15
+ expect{@instance.connections}.not_to raise_error
16
+ end
17
+ end
18
+
19
+ context ".connection" do
20
+ it {expect(@instance).to respond_to(:connection)}
21
+ it "it is expected to send get request to /api/connections/RandomConnectionName" do
22
+ expect(@instance).to receive(:get).with("/api/connections/RandomConnectionName")
23
+ expect{@instance.connection("RandomConnectionName")}.not_to raise_error
24
+ end
25
+ end
26
+
27
+ context ".delete_connection" do
28
+ it {expect(@instance).to respond_to(:delete_connection)}
29
+ it "it is expected to send delete request to /api/connections/RandomConnectionName" do
30
+ expect(@instance).to receive(:delete).with("/api/connections/RandomConnectionName")
31
+ expect{@instance.delete_connection("RandomConnectionName")}.not_to raise_error
32
+ end
33
+ end
34
+
35
+ context ".create_connection" do
36
+ it {expect(@instance).to respond_to(:create_connection)}
37
+ it "is expected to send post to /api/connections" do
38
+ params= { name: "Some Test name",
39
+ strategy: "Unpredictable",
40
+ options: {
41
+ tenant_domain: "google.com",
42
+ domain_aliases: "test.google.com,auth0.com"
43
+ }
44
+ }
45
+ expect(@instance).to receive(:post).with("/api/connections",params)
46
+ expect{@instance.create_connection("Some Test name", "Unpredictable", "google.com", "test.google.com,auth0.com")}.not_to raise_error
47
+ end
48
+ end
49
+ context ".update_connection" do
50
+ it {expect(@instance).to respond_to(:update_connection)}
51
+ it "is expected to send put to /api/connections/TestName" do
52
+ params= { status: false,
53
+ options: {
54
+ tenant_domain: "google.com",
55
+ }
56
+ }
57
+ expect(@instance).to receive(:put).with("/api/connections/TestName",params)
58
+ expect{@instance.update_connection("TestName", "google.com", false)}.not_to raise_error
59
+ end
60
+ end
61
+
62
+ end
@@ -0,0 +1,46 @@
1
+ require "spec_helper"
2
+ describe Auth0::Api::V1::Logs do
3
+ before :all do
4
+ dummy_instance = DummyClass.new
5
+ dummy_instance.extend(Auth0::Api::V1::Logs)
6
+ dummy_instance.extend(Auth0::Mixins::Initializer)
7
+ @instance = dummy_instance
8
+ end
9
+
10
+ context ".logs or .search_logs" do
11
+ it {expect(@instance).to respond_to(:logs)}
12
+ it {expect(@instance).to respond_to(:search_logs)}
13
+ it "should call path with all provided params per_page" do
14
+ expect(@instance).to receive(:get).with("/api/logs?per_page=500")
15
+ expect{@instance.logs("per_page" => 500)}.not_to raise_error
16
+ end
17
+ it "should call path with all provided params per_page, page" do
18
+ expect(@instance).to receive(:get).with("/api/logs?per_page=500&page=3")
19
+ expect{@instance.logs("per_page" => 500, page: 3)}.not_to raise_error
20
+ end
21
+
22
+ it "should raise warn if any garbage params are passed" do
23
+ error_message = "random_stuff is not in acceptable params list: [:take, :from, :search_criteria, :page, :per_page, :sort, :fields, :exclude_fields]"
24
+ expect(@instance).to receive(:warn).with(error_message)
25
+ @instance.logs("per_page" => 500, page: 3, random_stuff:7 )
26
+ end
27
+ end
28
+
29
+ context ".log" do
30
+ it {expect(@instance).to respond_to :log}
31
+ it "is expected to get '/api/logs/te st'" do
32
+ expect(@instance).to receive(:get).with("/api/logs/te st")
33
+ expect{@instance.log("te st")}.not_to raise_error
34
+ end
35
+ end
36
+
37
+ context ".user_logs" do
38
+ it {expect(@instance).to respond_to(:user_logs)}
39
+ it "is expected to get /api/users/#user_id/logs" do
40
+ expect(@instance).to receive(:get).with("/api/users/auth0|test test/logs?page=0&per_page=50")
41
+ expect{@instance.user_logs("auth0|test test")}.not_to raise_error
42
+ end
43
+ end
44
+
45
+
46
+ end
@@ -0,0 +1,40 @@
1
+ require "spec_helper"
2
+ describe Auth0::Api::V1::Rules do
3
+ before :all do
4
+ dummy_instance = DummyClass.new
5
+ dummy_instance.extend(Auth0::Api::V1::Rules)
6
+ dummy_instance.extend(Auth0::Mixins::Initializer)
7
+ @instance = dummy_instance
8
+ end
9
+
10
+ context ".rules" do
11
+ it {expect(@instance).to respond_to(:rules)}
12
+ it "is expected to call get /api/rules" do
13
+ expect(@instance).to receive(:get).with("/api/rules")
14
+ expect{@instance.rules}.not_to raise_error
15
+ end
16
+ end
17
+
18
+ context ".create_rule" do
19
+ it {expect(@instance).to respond_to(:create_rule)}
20
+ it "is expected to call post /api/rules" do
21
+ expect(@instance).to receive(:post).with("/api/rules", {name:"test",script:"script",order:"order",status:"status"})
22
+ expect{@instance.create_rule("test", "script", "order", "status")}.not_to raise_error
23
+ end
24
+ end
25
+ context ".update_rule" do
26
+ it {expect(@instance).to respond_to(:update_rule)}
27
+ it "is expected to call put /api/rules/test" do
28
+ expect(@instance).to receive(:put).with("/api/rules/test", {script:"script",order:"order",status:"status"})
29
+ expect{@instance.update_rule("test", "script", "order", "status")}.not_to raise_error
30
+ end
31
+ end
32
+ context ".delete_rule" do
33
+ it {expect(@instance).to respond_to(:delete_rule)}
34
+ it "is expected to call delete /api/rules/test" do
35
+ expect(@instance).to receive(:delete).with("/api/rules/test")
36
+ expect{@instance.delete_rule("test")}.not_to raise_error
37
+ end
38
+ end
39
+
40
+ end
@@ -0,0 +1,217 @@
1
+ require "spec_helper"
2
+ require "securerandom"
3
+
4
+ describe Auth0::Api::V1::Users do
5
+ before :all do
6
+ dummy_instance = DummyClass.new
7
+ dummy_instance.extend(Auth0::Api::V1::Users)
8
+ @instance = dummy_instance
9
+ end
10
+
11
+ context ".users" do
12
+ it {expect(@instance).to respond_to(:users)}
13
+ it {expect(@instance).to respond_to(:users_search)}
14
+ it "is expected to call /api/users when search is nill" do
15
+ expect(@instance).to receive(:get).with("/api/users")
16
+ expect{@instance.users}.not_to raise_error
17
+ end
18
+
19
+ it "is expected to call /api/users?search=search_criteria when search is search_criteria" do
20
+ expect(@instance).to receive(:get).with("/api/users?search=search_criteria")
21
+ expect{@instance.users("search_criteria")}.not_to raise_error
22
+ end
23
+ end
24
+
25
+ context ".user" do
26
+ it {expect(@instance).to respond_to(:user)}
27
+ it "is expected to call get request to /api/users/USER_ID" do
28
+ expect(@instance).to receive(:get).with("/api/users/USER_ID")
29
+ expect{@instance.user("USER_ID")}.not_to raise_error
30
+ end
31
+ end
32
+
33
+ context ".user_devices" do
34
+ it {expect(@instance).to respond_to(:user_devices)}
35
+ it "is expected to call /api/users when search is nill" do
36
+ expect(@instance).to receive(:get).with("/api/users/USER_ID/devices")
37
+ expect{@instance.user_devices("USER_ID")}.not_to raise_error
38
+ end
39
+ end
40
+
41
+ context ".connection_users" do
42
+ it {expect(@instance).to respond_to(:connection_users)}
43
+ it {expect(@instance).to respond_to(:search_connection_users)}
44
+ it "is expected to call /api/connections/CONNECTION_ID/users/ when search is nill" do
45
+ expect(@instance).to receive(:get).with("/api/connections/CONNECTION_ID/users")
46
+ expect{@instance.connection_users("CONNECTION_ID")}.not_to raise_error
47
+ end
48
+
49
+ it "is expected to call /api/connections/CONNECTION_ID/users?search=search_criteria when search is search_criteria" do
50
+ expect(@instance).to receive(:get).with("/api/connections/CONNECTION_ID/users?search=search_criteria")
51
+ expect{@instance.connection_users("CONNECTION_ID", "search_criteria")}.not_to raise_error
52
+ end
53
+ end
54
+
55
+ context ".enterpriseconnections_users" do
56
+ it{expect(@instance).to respond_to(:enterpriseconnections_users)}
57
+ it "is expected to call get to /api/enterpriseconnections/users" do
58
+ expect(@instance).to receive(:get).with("/api/enterpriseconnections/users?search=arr a&per_page=11")
59
+ @instance.enterpriseconnections_users "arr a", 11
60
+ end
61
+
62
+ it "is expected to call get to /api/enterpriseconnections/users?search=dfasdf&per_page=500" do
63
+ expect(@instance).to receive(:get).with("/api/enterpriseconnections/users?search=arr a&per_page=500")
64
+ @instance.enterpriseconnections_users "arr a"
65
+ end
66
+ end
67
+
68
+ context ".socialconnections_users" do
69
+ it{expect(@instance).to respond_to(:socialconnections_users)}
70
+ it "is expected to call get to /api/socialconnections/users" do
71
+ expect(@instance).to receive(:get).with("/api/socialconnections/users?search=arr a&per_page=11")
72
+ @instance.socialconnections_users "arr a", 11
73
+ end
74
+ it "is expected to call get to /api/socialconnections/users" do
75
+ expect(@instance).to receive(:get).with("/api/socialconnections/users?search=arr a&per_page=500")
76
+ @instance.socialconnections_users "arr a"
77
+ end
78
+ it "is expected to call get to /api/socialconnections/users" do
79
+ expect(@instance).to receive(:get).with("/api/socialconnections/users?search=&per_page=500")
80
+ @instance.socialconnections_users
81
+ end
82
+ end
83
+
84
+ context ".client_users" do
85
+ it {expect(@instance).to respond_to(:client_users)}
86
+ it "is expected to call /api/client/test_client_id/users through get" do
87
+ expect(@instance).to receive(:get).with("/api/clients/test_client_id/users")
88
+ @instance.client_users("test_client_id")
89
+ end
90
+ it "is expected to call /api/client//users if no client_id passed" do
91
+ expect(@instance).to receive(:get).with("/api/clients//users")
92
+ expect{@instance.client_users()}.not_to raise_error
93
+ end
94
+ end
95
+
96
+ context ".create_user" do
97
+ it {expect(@instance).to respond_to(:create_user)}
98
+ it "is expected to call post to /api/users" do
99
+ expect(@instance).to receive(:post).with("/api/users", {email: "test@test.com", password: "password", connection: "conn"})
100
+ @instance.create_user("test@test.com", "password", "conn")
101
+ end
102
+ end
103
+
104
+ context ".send_verification_email" do
105
+ it {expect(@instance).to respond_to(:send_verification_email)}
106
+ it "is expected to call post to /api/users/test/send_verification_email" do
107
+ expect(@instance).to receive(:post).with("/api/users/test/send_verification_email")
108
+ @instance.send_verification_email("test")
109
+ end
110
+ end
111
+
112
+ context ".change_password_ticket" do
113
+ it {expect(@instance).to respond_to(:change_password_ticket)}
114
+ it "is expected to call post to /api/users/USERID/change_password_ticket" do
115
+ password = SecureRandom.hex
116
+ expect(@instance).to receive(:post).with("/api/users/USERID/change_password_ticket", { "newPassword" => password, "resultUrl" => nil })
117
+ @instance.change_password_ticket "USERID", password
118
+ end
119
+ end
120
+
121
+ context ".verification_ticket" do
122
+ it {expect(@instance).to respond_to(:verification_ticket)}
123
+ it "is expected to call post to /api/users/userId/verification_ticket if resulturl is set" do
124
+ expect(@instance).to receive(:post).with("/api/users/auth0|tdasfasdfasdfa/verification_ticket", {"resultUrl" => "google.com"})
125
+ @instance.verification_ticket("auth0|tdasfasdfasdfa","google.com")
126
+ end
127
+ it "is expected to call post to /api/users/userId/verification_ticket if result url is empty" do
128
+ expect(@instance).to receive(:post).with("/api/users/auth0|tdasfasdfasdfa/verification_ticket", {"resultUrl" => nil})
129
+ @instance.verification_ticket("auth0|tdasfasdfasdfa")
130
+ end
131
+ end
132
+
133
+ context ".create_public_key" do
134
+ it {expect(@instance).to respond_to(:create_public_key)}
135
+ it "is expected to call post to /api/users/userId/public_key" do
136
+ expect(@instance).to receive(:post).with("/api/users/auth0|tdasfasdfasdfa/public_key", {device: "device22", public_key: "SuperSecurePK"})
137
+ @instance.create_public_key("auth0|tdasfasdfasdfa","device22", "SuperSecurePK")
138
+ end
139
+ end
140
+
141
+ context ".update_user_email" do
142
+ it {expect(@instance).to respond_to(:update_user_email)}
143
+ it "is expected to call put to /api/users/auth0|tdasfasdfasdfa/email" do
144
+ expect(@instance).to receive(:put).with("/api/users/auth0|tdasfasdfasdfa/email", {email:"email", verify: true})
145
+ @instance.update_user_email("auth0|tdasfasdfasdfa", "email")
146
+ end
147
+ end
148
+
149
+ context ".update_user_metadata" do
150
+ it {expect(@instance).to respond_to :update_user_metadata}
151
+ it "is expected to call put to /api/users/userId/metadata" do
152
+ expect(@instance).to receive(:put).with("/api/users/userId/metadata", {supersecret_users_data: "3"})
153
+ @instance.update_user_metadata "userId", {supersecret_users_data: "3"}
154
+ end
155
+ end
156
+
157
+ context ".update_user_password" do
158
+ it {expect(@instance).to respond_to(:update_user_password)}
159
+ it "is expected to call put to /api/users/auth0|tdasfasdfasdfa/password" do
160
+ expect(@instance).to receive(:put).with("/api/users/auth0|tdasfasdfasdfa/password", {password:"password", verify: true})
161
+ @instance.update_user_password("auth0|tdasfasdfasdfa", "password")
162
+ end
163
+ end
164
+
165
+ context ".update_user_password_using_email" do
166
+ it {expect(@instance).to respond_to(:update_user_password_using_email)}
167
+ it "is expected to call put to /api/users/email@email.com/password" do
168
+ expect(@instance).to receive(:put).with("/api/users/email@email.com/password", {email: "email@email.com", password:"password", connection:"Con", verify: true})
169
+ @instance.update_user_password_using_email("email@email.com", "password", "Con")
170
+ end
171
+ end
172
+
173
+ context ".patch_user_metadata" do
174
+ it {expect(@instance).to respond_to :patch_user_metadata}
175
+ it "is expected to call patch to /api/users/userId/metadata" do
176
+ expect(@instance).to receive(:patch).with("/api/users/userId/metadata", {supersecret_users_data: "3"})
177
+ @instance.patch_user_metadata "userId", {supersecret_users_data: "3"}
178
+ end
179
+ end
180
+
181
+ context ".delete_users" do
182
+ it {expect(@instance).to respond_to :delete_users}
183
+ it "is expected to call delete to /api/users" do
184
+ expect(@instance).to receive(:delete).with("/api/users/")
185
+ @instance.delete_users
186
+ end
187
+ end
188
+
189
+ context ".delete_user" do
190
+ it {expect(@instance).to respond_to(:delete_user)}
191
+ it "is expected to call delete to /api/users/userId" do
192
+ expect(@instance).to receive(:delete).with("/api/users/userId")
193
+ @instance.delete_user("userId")
194
+ end
195
+
196
+ it "is expected not to call delete to /api/users if user_id is blank" do
197
+ expect(@instance).not_to receive(:delete)
198
+ expect{@instance.delete_user("")}.to raise_exception(Auth0::UserIdIsBlank)
199
+ end
200
+ end
201
+
202
+ context ".revoke_user_refresh_token" do
203
+ it {expect(@instance).to respond_to(:revoke_user_refresh_token)}
204
+ it "is expected to call delete to /api/users/user_id/refresh_tokens/refresh_token" do
205
+ expect(@instance).to receive(:delete).with("/api/users/user_id/refresh_tokens/refresh_token")
206
+ @instance.revoke_user_refresh_token("user_id", "refresh_token")
207
+ end
208
+ end
209
+
210
+ context ".revoke_user_device_public_key" do
211
+ it {expect(@instance).to respond_to(:revoke_user_device_public_key)}
212
+ it "is expected to call delete to /api/users/user_id/publickey?device=device" do
213
+ expect(@instance).to receive(:delete).with("/api/users/user_id/publickey?device=device")
214
+ @instance.revoke_user_device_public_key("user_id", "device")
215
+ end
216
+ end
217
+ end
@@ -0,0 +1,24 @@
1
+ require "spec_helper"
2
+ describe Auth0::Api::V2::Blacklists do
3
+ before :all do
4
+ dummy_instance = DummyClass.new
5
+ dummy_instance.extend(Auth0::Api::V2::Blacklists)
6
+ @instance = dummy_instance
7
+ end
8
+
9
+ context ".blacklisted_tokens" do
10
+ it {expect(@instance).to respond_to(:blacklisted_tokens)}
11
+ it "is expected to call /api/v2/blacklists/tokens" do
12
+ expect(@instance).to receive(:get).with("/api/v2/blacklists/tokens")
13
+ expect{@instance.blacklisted_tokens}.not_to raise_error
14
+ end
15
+ end
16
+
17
+ context ".add_token.to_blacklist" do
18
+ it {expect(@instance).to respond_to(:add_token_to_blacklist)}
19
+ it "is expected to call post to /api/v2/blacklists/tokens" do
20
+ expect(@instance).to receive(:post).with("/api/v2/blacklists/tokens", {aud: "aud", jti: "jti"})
21
+ @instance.add_token_to_blacklist("jti", "aud")
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,54 @@
1
+ require "spec_helper"
2
+ describe Auth0::Api::V2::Clients do
3
+ before :all do
4
+ dummy_instance = DummyClass.new
5
+ dummy_instance.extend(Auth0::Api::V2::Clients)
6
+ @instance = dummy_instance
7
+ end
8
+ context ".clients" do
9
+ it {expect(@instance).to respond_to(:clients)}
10
+ it {expect(@instance).to respond_to(:get_clients)}
11
+ it "is expected to send get request to /api/v2/clients/" do
12
+ expect(@instance).to receive(:get).with("/api/v2/clients", {})
13
+ expect{@instance.clients}.not_to raise_error
14
+ end
15
+ it "is expected to send get request to /api/v2/clients?fields=name&exclude_fields=false" do
16
+ expect(@instance).to receive(:get).with("/api/v2/clients",{exclude_fields: false, fields: [:name]})
17
+ expect{@instance.clients({exclude_fields: false, fields: [:name]})}.not_to raise_error
18
+ end
19
+ end
20
+ context ".client" do
21
+ it {expect(@instance).to respond_to(:client)}
22
+ it "is expected to send get request to /api/v2/clients/1" do
23
+ expect(@instance).to receive(:get).with("/api/v2/clients/1", {})
24
+ expect{@instance.client(1)}.not_to raise_error
25
+ end
26
+ it "is expected to send get request to /api/v2/clients?fields=name&exclude_fields=false" do
27
+ expect(@instance).to receive(:get).with("/api/v2/clients/1",{exclude_fields: false, fields: [:name]})
28
+ expect{@instance.client(1,{exclude_fields: false, fields: [:name]})}.not_to raise_error
29
+ end
30
+ end
31
+
32
+ context ".create_client" do
33
+ it {expect(@instance).to respond_to(:create_client)}
34
+ it "is expected to send post to /api/v2/clients" do
35
+ expect(@instance).to receive(:post).with("/api/v2/clients",{name: "name", opt: "opt"})
36
+ expect{@instance.create_client("name", {name: "/name1", opt: "opt"})}.not_to raise_error
37
+ end
38
+ end
39
+ context ".delete_client" do
40
+ it {expect(@instance).to respond_to(:delete_client)}
41
+ it "is expected to send delete to /api/v2/clients/1" do
42
+ expect(@instance).to receive(:delete).with("/api/v2/clients/1")
43
+ expect{@instance.delete_client("1")}.not_to raise_error
44
+ end
45
+ end
46
+
47
+ context ".patch_client" do
48
+ it {expect(@instance).to respond_to(:patch_client)}
49
+ it "is expected to send patch to /api/v2/clients/1" do
50
+ expect(@instance).to receive(:patch).with("/api/v2/clients/1", {fields: "fields"})
51
+ expect{@instance.patch_client("1", {fields: "fields"})}.not_to raise_error
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,21 @@
1
+ require "spec_helper"
2
+ describe Auth0::Api::V2::Jobs do
3
+ before :all do
4
+ dummy_instance = DummyClass.new
5
+ dummy_instance.extend(Auth0::Api::V2::Jobs)
6
+ @instance = dummy_instance
7
+ end
8
+ context ".get_job" do
9
+ it{expect(@instance).to respond_to(:get_job)}
10
+ it "expect client to send get to /api/v2/stats/jobs/3" do
11
+ expect(@instance).to receive(:get).with("/api/v2/jobs/3")
12
+ expect{@instance.get_job(3)}.not_to raise_error
13
+ end
14
+ end
15
+ context ".daily_stats" do
16
+ it{expect(@instance).to respond_to(:create_job)}
17
+ it "expect client to send get to /api/v2/stats/daily" do
18
+ expect{@instance.create_job("file_name","name")}.to raise_error(NotImplementedError)
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,22 @@
1
+ require "spec_helper"
2
+ describe Auth0::Api::V2::Stats do
3
+ before :all do
4
+ dummy_instance = DummyClass.new
5
+ dummy_instance.extend(Auth0::Api::V2::Stats)
6
+ @instance = dummy_instance
7
+ end
8
+ context ".active_users" do
9
+ it{expect(@instance).to respond_to(:active_users)}
10
+ it "expect client to send get to /api/v2/stats/active-users" do
11
+ expect(@instance).to receive(:get).with("/api/v2/stats/active-users")
12
+ expect{@instance.active_users}.not_to raise_error
13
+ end
14
+ end
15
+ context ".daily_stats" do
16
+ it{expect(@instance).to respond_to(:daily_stats)}
17
+ it "expect client to send get to /api/v2/stats/daily" do
18
+ expect(@instance).to receive(:get).with("/api/v2/stats/daily", {from: "20120222", to: "20151222"})
19
+ expect{@instance.daily_stats("20120222","20151222")}.not_to raise_error
20
+ end
21
+ end
22
+ end