spec/lib/zoom/actions/groups/create_spec.rb in zoom_rb-0.11.0 vs spec/lib/zoom/actions/groups/create_spec.rb in zoom_rb-1.0.0
- old
+ new
@@ -1,3 +1,98 @@
# frozen_string_literal: true
-require 'spec_helper'
+require 'spec_helper'
+
+describe Zoom::Actions::Groups do
+ let(:zc) { zoom_client }
+ let(:args) { { name: 'Zoom Group Name' } }
+ let(:response) { zc.group_create(args) }
+
+ describe '#group_create action' do
+ context 'with 201 response' do
+ before :each do
+ stub_request(
+ :post,
+ zoom_url("/groups")
+ ).to_return(
+ status: 201,
+ body: json_response('groups','create'),
+ headers: { 'Content-Type' => 'application/json' }
+ )
+ end
+
+ it 'returns a hash' do
+ expect(response).to be_kind_of(Hash)
+ end
+
+ it 'returns the set params' do
+ expect(response['name']).to eq(args[:name])
+ end
+
+ it "returns 'start_url' and 'join_url'" do
+ expect(response['name']).to_not be_nil
+ end
+ end
+
+ context 'with 409 response' do
+ before :each do
+ stub_request(
+ :post,
+ zoom_url("/groups")
+ ).to_return(status: 409,
+ body: '{ "code": 409, "message": "Group name Zoom Group Name is already in use." }',
+ headers: { 'Content-Type' => 'application/json' })
+ end
+
+ it 'raises an error' do
+ expect { response }.to raise_error(Zoom::Error)
+ end
+ end
+
+ context 'with 429 response' do
+ before :each do
+ stub_request(
+ :post,
+ zoom_url("/groups")
+ ).to_return(status: 429,
+ body: '{ "code": 429, "message": "You have exceeded the daily rate limit (1) of Create a Group API request for this account. This limit resets at GMT 00:00:00." }',
+ headers: { 'Content-Type' => 'application/json' })
+ end
+
+ it 'raises an error' do
+ expect { response }.to raise_error(Zoom::Error)
+ end
+ end
+
+ context 'with 300 response' do
+ before :each do
+ stub_request(
+ :post,
+ zoom_url("/groups")
+ ).to_return(status: 300,
+ body: '{ "code": 300, "message": "Missing field: name." }',
+ headers: { 'Content-Type' => 'application/json' })
+ end
+
+ it 'raises an error' do
+ expect { response }.to raise_error(Zoom::Error)
+ end
+ end
+
+ context 'with 404 response' do
+ before :each do
+ stub_request(
+ :post,
+ zoom_url("/groups")
+ ).to_return(
+ status: 404,
+ body: json_response('error', 'group_not_exist'),
+ headers: { 'Content-Type' => 'application/json' }
+ )
+ end
+
+ it 'raises an error' do
+ expect { response }.to raise_error(Zoom::Error)
+ end
+ end
+ end
+end
\ No newline at end of file