Merge branch 'master' into 1969-persistent-switch
[arvados.git] / apps / workbench / test / integration / collections_test.rb
1 require 'integration_helper'
2 require 'selenium-webdriver'
3 require 'headless'
4
5 class CollectionsTest < ActionDispatch::IntegrationTest
6
7   def change_persist oldstate, newstate
8     find "div[data-persistent-state='#{oldstate}']"
9     assert_raises Capybara::ElementNotFound do
10       find "div[data-persistent-state='#{newstate}']"
11     end
12     find('label', text: newstate.capitalize).click
13     find 'label.active', text: newstate.capitalize
14     find "div[data-persistent-state='#{newstate}']"
15     assert_raises Capybara::ElementNotFound do
16       find "div[data-persistent-state='#{oldstate}']"
17     end
18   end
19
20   ['/collections', '/'].each do |path|
21     test "Flip persistent switch at #{path}" do
22       Capybara.current_driver = Capybara.javascript_driver
23       uuid = api_fixture('collections')['foo_file']['uuid']
24       visit page_with_token('active', path)
25       within "tr[data-object-uuid='#{uuid}']" do
26         change_persist 'cache', 'persistent'
27       end
28       # Refresh page and make sure the change was committed.
29       visit current_path
30       within "tr[data-object-uuid='#{uuid}']" do
31         change_persist 'persistent', 'cache'
32       end
33     end
34   end
35
36   test 'Flip persistent switch on collection#show' do
37     Capybara.current_driver = Capybara.javascript_driver
38     uuid = api_fixture('collections')['foo_file']['uuid']
39     visit page_with_token('active', "/collections/#{uuid}")
40     change_persist 'cache', 'persistent'
41     visit current_path
42     change_persist 'persistent', 'cache'
43   end
44
45 end