require 'helper' describe Bearcat::Client::ExternalTools do before do @client = Bearcat::Client.new(prefix: 'http://canvas.instructure.com', token: 'test_token') end describe '.course_external_tools' do it 'returns all external tools on a course' do stub_get(@client, '/api/v1/courses/1/external_tools').to_return(json_response('external_tools.json')) tools = @client.course_external_tools(1) expect(tools.first['id']).to eq(1) end end describe '.account_external_tools' do it 'returns all external tools on an accounts' do stub_get(@client, '/api/v1/accounts/1/external_tools').to_return(json_response('external_tools.json')) tools = @client.account_external_tools(1) expect(tools.first['id']).to eq(1) end end describe 'course_external_tool' do it 'returns a course external tool' do stub_get(@client, '/api/v1/courses/1/external_tools/1').to_return(json_response('external_tool.json')) tool = @client.course_external_tool(1, 1) expect(tool['id']).to eq(1) end end describe 'account_external_tool' do it 'returns an account external tool' do stub_get(@client, '/api/v1/accounts/1/external_tools/1').to_return(json_response('external_tool.json')) tool = @client.account_external_tool(1, 1) expect(tool['id']).to eq(1) end end describe 'create_course_external_tool' do it 'creates an external tool for the course' do stub_post(@client, '/api/v1/courses/1/external_tools') .with(body: {}) .to_return(json_response('external_tool.json')) tool = @client.create_course_external_tool(1, {}) expect(tool['id']).to eq(1) end end describe 'create_account_external_tool' do it 'creates an external tool for the account' do stub_post(@client, '/api/v1/accounts/1/external_tools') .with(body: {}) .to_return(json_response('external_tool.json')) tool = @client.create_account_external_tool(1, {}) expect(tool['id']).to eq(1) end end describe 'edit_course_external_tool' do it 'edits the external tool' do stub_put(@client, '/api/v1/courses/1/external_tools/1') .with(body: {}) .to_return(json_response('external_tool.json')) tool = @client.edit_course_external_tool(1, 1, {}) expect(tool['id']).to eq(1) end end describe 'edit_account_external_tool' do it 'edits the external tool' do stub_put(@client, '/api/v1/accounts/1/external_tools/1') .with(body: {}) .to_return(json_response('external_tool.json')) tool = @client.edit_account_external_tool(1, 1, {}) expect(tool['id']).to eq(1) end end describe 'delete_course_external_tool' do it 'deletes the external tool' do stub_delete(@client, '/api/v1/courses/1/external_tools/1') .with(body: {}) .to_return(json_response('external_tool.json')) tool = @client.delete_course_external_tool(1, 1, {}) expect(tool['id']).to eq(1) end end describe 'delete_account_external_tool' do it 'deletes the external tool' do stub_delete(@client, '/api/v1/accounts/1/external_tools/1') .with(body: {}) .to_return(json_response('external_tool.json')) tool = @client.delete_account_external_tool(1, 1, {}) expect(tool['id']).to eq(1) end end end