require_relative '../test_config' require 'hws_settings' require 'projects' require 'base64' require 'hws_strings' describe 'Projects' do include Rack::Test::Methods def app HELIX_WEB_SERVICES_APP end my_project_id = HWSStrings.component_encode('My Project') after(:each) do HWSSettings.settings_handle.HVE_PROJECTS_PATH = nil end context 'GET /projects/v1' do context 'HVE Projects' do it 'will list project ids with no details value' do HWSSettings.settings_handle.HVE_PROJECTS_PATH = '//depot/main' authorize 'jdoe', ticket_for_jdoe get('/projects/v1') expect(last_response.status).to eq(200) ids = JSON.parse(last_response.body) expect(ids).to include(my_project_id) end it 'will list project data with details enabled' do HWSSettings.settings_handle.HVE_PROJECTS_PATH = '//depot/main' authorize 'jdoe', ticket_for_jdoe get('/projects/v1?details=true') expect(last_response.status).to eq(200) projects = JSON.parse(last_response.body) my_project = projects.find {|p| p['id'] == my_project_id } expect(my_project).to_not be_nil expect(my_project['name']).to eq('My Project') expect(my_project['server']).to_not be_nil expect(my_project['hveProject']['depotPath']).to eq('//depot/main/My Project') end end end context 'GET /projects/v1/:id' do context 'HVE Projects' do it 'will list project data for the indicated id' do HWSSettings.settings_handle.HVE_PROJECTS_PATH = '//depot/main' authorize 'jdoe', ticket_for_jdoe get("/projects/v1/#{my_project_id}") expect(last_response.status).to eq(200) my_project = JSON.parse(last_response.body) expect(my_project).to_not be_nil expect(my_project['id']).to eq(my_project_id) expect(my_project['name']).to eq('My Project') expect(my_project['server']).to_not be_nil expect(my_project['hveProject']['depotPath']).to eq('//depot/main/My Project') end end end end