30 lines
1.3 KiB
Ruby
30 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.shared_examples 'POST /admin/client 201' do
|
|
it 'creates client that can read/write and returns 201' do
|
|
expect(json_response).not_to be_empty
|
|
expect(json_response['name']).to eq valid_client[:name]
|
|
expect(json_response['api_key'].length).to eq 82
|
|
expect(response).to have_http_status(201)
|
|
api_key = json_response['api_key']
|
|
# check if request was parsed properly
|
|
get "/admin/clients/#{valid_client[:name]}", headers: api_key_header(admin_client)
|
|
expect(json_response).not_to be_empty
|
|
expect(json_response['name']).to eq valid_client[:name]
|
|
expect(json_response['description']).to eq valid_client[:description]
|
|
expect(json_response['permission']).to eq valid_client[:permission]
|
|
expect(json_response['public_ip']).to eq valid_client[:public_ip]
|
|
expect(response).to have_http_status(200)
|
|
# test the new client write
|
|
put '/client', headers: api_key_header(nil, api_key)
|
|
expect(json_response).not_to be_empty
|
|
expect(response).to have_http_status(200)
|
|
ipv4 = json_response['ipv4']
|
|
# test the new client read
|
|
get "/clients/#{valid_client[:name]}", headers: api_key_header(nil, api_key)
|
|
expect(json_response).not_to be_empty
|
|
expect(response).to have_http_status(200)
|
|
expect(json_response['ipv4']).to eq ipv4
|
|
end
|
|
end
|