4084: Add live logging test
[arvados.git] / apps / workbench / test / integration / websockets_test.rb
1 require 'integration_helper'
2 require 'selenium-webdriver'
3 require 'headless'
4
5 class WebsocketTest < ActionDispatch::IntegrationTest
6
7   setup do
8     headless = Headless.new
9     headless.start
10     Capybara.current_driver = :selenium
11   end
12
13   test "test page" do
14     visit(page_with_token("active", "/websockets"))
15     fill_in("websocket-message-content", :with => "Stuff")
16     click_button("Send")
17     assert page.has_text? '"status":400'
18   end
19
20   test "test live logging" do
21     visit(page_with_token("active", "/pipeline_instances/zzzzz-d1hrv-9fm8l10i9z2kqc6"))
22     click_link("Log")
23     assert page.has_no_text? '123 hello'
24
25     api = ArvadosApiClient.new
26
27     Thread.current[:arvados_api_token] = @@API_AUTHS["active"]['api_token']
28     api.api("logs", "", {log: {
29                 object_uuid: "zzzzz-d1hrv-9fm8l10i9z2kqc6",
30                 event_type: "stderr",
31                 properties: {"text" => "123 hello"}}})
32     assert page.has_text? '123 hello'
33     Thread.current[:arvados_api_token] = nil
34   end
35
36 end