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