2d05a1ed30851256da1c051ce676aa7239624580
[arvados-formula.git] / test / integration / controller / controls / resources_spec.rb
1 # frozen_string_literal: true
2
3 query_virtual_machines = <<~TEST_VM_CMD
4   su -l kitchen -c \
5     "ARVADOS_API_TOKEN=\\"systemroottokenmushaveatleast32characters\\" \
6     ARVADOS_API_HOST=\\"fixme.example.net\\" \
7     arv virtual_machine list --filters '[[\\"hostname\\", \\"=\\", \\"%s\\"]]'"
8 TEST_VM_CMD
9
10 query_scoped_token_urls = <<~TEST_STU_CMD
11   su -l kitchen -c \
12     "ARVADOS_API_TOKEN=\\"systemroottokenmushaveatleast32characters\\" \
13     ARVADOS_API_HOST=\\"fixme.example.net\\" \
14     arv api_client_authorization list"
15 TEST_STU_CMD
16
17 control 'arvados api resources' do
18   impact 0.5
19   title 'should be created'
20
21   %w[
22     webshell1
23     webshell2
24     webshell3
25   ].each do |vm|
26     describe "virtual machine #{vm}" do
27       subject do
28         command(query_virtual_machines % vm)
29       end
30       its('stdout') { should match(/"uuid":"fixme-2x53u-[a-z0-9_]{15}"/) }
31       its('stdout') { should match(/"hostname":"#{vm}"/) }
32       its('stderr') { should eq '' }
33       its('exit_status') { should eq 0 }
34     end
35
36     describe "scoped token for #{vm}" do
37       subject do
38         command(query_scoped_token_urls % vm)
39       end
40       its('stdout') do
41         should match(
42           %r{"GET /arvados/v1/virtual_machines/fixme-2x53u-[a-z0-9]{15}/logins"}
43         )
44       end
45       its('stderr') { should eq '' }
46       its('exit_status') { should eq 0 }
47     end
48   end
49 end