auth0 2.1.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
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