spec/requests/flows/password_spec.rb in doorkeeper-4.0.0.rc3 vs spec/requests/flows/password_spec.rb in doorkeeper-4.0.0.rc4
- old
+ new
@@ -22,38 +22,51 @@
client_exists
create_resource_owner
end
context 'with valid user credentials' do
- it 'should issue new token' do
+ it 'should issue new token with confidential client' do
expect do
post password_token_endpoint_url(client: @client, resource_owner: @resource_owner)
end.to change { Doorkeeper::AccessToken.count }.by(1)
token = Doorkeeper::AccessToken.first
- should_have_json 'access_token', token.token
+ expect(token.application_id).to eq @client.id
+ should_have_json 'access_token', token.token
end
+ it 'should issue new token with public client (only client_id present)' do
+ expect do
+ post password_token_endpoint_url(client_id: @client.uid, resource_owner: @resource_owner)
+ end.to change { Doorkeeper::AccessToken.count }.by(1)
+
+ token = Doorkeeper::AccessToken.first
+
+ expect(token.application_id).to eq @client.id
+ should_have_json 'access_token', token.token
+ end
+
it 'should issue new token without client credentials' do
expect do
post password_token_endpoint_url(resource_owner: @resource_owner)
end.to change { Doorkeeper::AccessToken.count }.by(1)
token = Doorkeeper::AccessToken.first
- should_have_json 'access_token', token.token
+ expect(token.application_id).to be_nil
+ should_have_json 'access_token', token.token
end
it 'should issue a refresh token if enabled' do
config_is_set(:refresh_token_enabled, true)
post password_token_endpoint_url(client: @client, resource_owner: @resource_owner)
token = Doorkeeper::AccessToken.first
- should_have_json 'refresh_token', token.refresh_token
+ should_have_json 'refresh_token', token.refresh_token
end
it 'should return the same token if it is still accessible' do
allow(Doorkeeper.configuration).to receive(:reuse_access_token).and_return(true)
@@ -80,15 +93,23 @@
post password_token_endpoint_url(client: @client)
end.to_not change { Doorkeeper::AccessToken.count }
end
end
- context 'with invalid client credentials' do
+ context 'with invalid confidential client credentials' do
it 'should not issue new token with bad client credentials' do
expect do
post password_token_endpoint_url(client_id: @client.uid,
client_secret: 'bad_secret',
resource_owner: @resource_owner)
+ end.to_not change { Doorkeeper::AccessToken.count }
+ end
+ end
+
+ context 'with invalid public client id' do
+ it 'should not issue new token with bad client id' do
+ expect do
+ post password_token_endpoint_url(client_id: 'bad_id', resource_owner: @resource_owner)
end.to_not change { Doorkeeper::AccessToken.count }
end
end
end