spec/sms77/hooks_spec.rb in sms77-0.4.0 vs spec/sms77/hooks_spec.rb in sms77-0.5.0
- old
+ new
@@ -1,106 +1,109 @@
-# frozen_string_literal: true
-
-require 'securerandom'
-require 'sms77/hooks'
-require 'sms77/util'
-require 'sms77/resources/hooks'
-require 'spec_helper'
-
-RSpec.describe Sms77, 'hooks' do
- HOOK_ID = EnvKeyStore.new('HOOK_ID')
- HELPER = Helper.new(Sms77::Resources::Hooks)
-
- def alter_action_stub
- {
- :code => nil,
- :success => true
- }
- end
-
- def request(fn, stub, extra_params = {})
- res = HELPER.request(fn, stub, extra_params)
-
- expect(res).to be_a(Hash)
-
- stub_keys = stub.keys
-
- res.each do |k, v|
- expect(stub_keys).to include(k)
- expect(v.class).to match(stub[:"#{k}"].class)
- end
-
- res
- end
-
- it 'returns all hooks' do
- res = request(HELPER.resource.method(:read), {
- :code => nil,
- :hooks => [
- {
- :created => "2020-11-04 23:04:15",
- :event_type => "sms_mo",
- :id => "30",
- :request_method => "GET",
- :target_url => "http://my.tld/testHook"
- }
- ],
- :success => true
- })
-
- expect(res).to include(:code, :hooks, :success)
- expect(res[:code]).to eq(nil)
- expect(res[:hooks]).to be_a(Array)
- expect(res[:success]).to be_boolean
-
- res[:hooks].each do |hook|
- expect(hook).to include(:created, :event_type, :id, :request_method, :target_url)
-
- expect(Sms77::Util::is_valid_datetime?(hook[:created])).to be
- expect(hook[:created]).to match(/^\d\d\d\d-(0?[1-9]|1[0-2])-(0?[1-9]|[12][0-9]|3[01]) (1[0-9]|2[0-3]|0[0-9]):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9])$/)
- expect(Sms77::Hooks::Validator::event_type?(hook[:event_type])).to be
- expect(Sms77::Util::is_positive_integer?(hook[:id])).to be
- expect(Sms77::Hooks::Validator::request_method?(hook[:request_method])).to be
- expect(Sms77::Hooks::Validator::target_url?(hook[:target_url])).to be
- end
- end
-
-=begin
- it 'subscribes' do
- stub = alter_action_stub.merge({ :id => rand(1...1000000) })
-
- res = request(HELPER.resource.method(:subscribe), stub, {
- :event_type => Sms77::Hooks::EventType::NEW_INBOUND_SMS,
- :request_method => Sms77::Hooks::RequestMethod::GET,
- :target_url => "http://ruby.tld/#{SecureRandom.uuid}"
- })
-
- expect(Sms77::Util::is_positive_integer?(res[:id])).to be
- expect(res[:id]).to be_a(Integer)
- expect(stub[:id]).to match(res[:id]) unless Helper::IS_HTTP
-
- assert_alter_response(res)
-
- puts "Subscribed ID: #{Helper::IS_HTTP ? res[:id] : stub[:id]}"
-
- HOOK_ID.set(res[:id])
- end
-
- it 'unsubscribes' do
- id = HOOK_ID.get
- res = request(HELPER.resource.method(:unubscribe), alter_action_stub, { :id => id })
-
- assert_alter_response(res)
-
- expect(res[:success]).to be_boolean
-
- puts "Unsubscribed ID #{id}: #{res[:success]}"
-
- res[:success]
- end
-=end
-
- def assert_alter_response(res)
- expect(res[:code]).to match(nil)
- expect(res[:success]).to be_boolean
- end
+# frozen_string_literal: true
+
+require 'spec_helper'
+require 'securerandom'
+require 'sms77/hooks'
+require 'sms77/util'
+require 'sms77/resources/hooks'
+
+RSpec.describe Sms77, 'hooks' do
+ HOOK_ID = EnvKeyStore.new('HOOK_ID')
+
+ def alter_action_stub
+ {
+ :code => nil,
+ :success => true
+ }
+ end
+
+ def request(fn, stub, extra_params = {})
+ helper = Helper.new(Sms77::Resources::Hooks)
+
+ res = helper.request(helper.resource.method(fn), stub, extra_params)
+
+ expect(res).to be_a(Hash)
+
+ stub_keys = stub.keys
+
+ res.each do |k, v|
+ expect(stub_keys).to include(k)
+ expect(v.class).to match(stub[:"#{k}"].class)
+ end
+
+ res
+ end
+
+ it 'returns all hooks' do
+ res = request(:read, {
+ :code => nil,
+ :hooks => [
+ {
+ :created => "2020-11-04 23:04:15",
+ :event_type => "sms_mo",
+ :id => "30",
+ :request_method => "GET",
+ :target_url => "http://my.tld/testHook"
+ }
+ ],
+ :success => true
+ })
+
+ expect(res).to include(:code, :hooks, :success)
+ expect(res[:code]).to eq(nil)
+ expect(res[:hooks]).to be_a(Array)
+ expect(res[:success]).to be_boolean
+
+ res[:hooks].each do |hook|
+ expect(hook).to include(:created, :event_type, :id, :request_method, :target_url)
+
+ expect(Sms77::Util::is_valid_datetime?(hook[:created])).to be
+ expect(hook[:created]).to match(/^\d\d\d\d-(0?[1-9]|1[0-2])-(0?[1-9]|[12][0-9]|3[01]) (1[0-9]|2[0-3]|0[0-9]):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9])$/)
+ expect(Sms77::Hooks::Validator::event_type?(hook[:event_type])).to be
+ expect(Sms77::Util::is_positive_integer?(hook[:id])).to be
+ expect(Sms77::Hooks::Validator::request_method?(hook[:request_method])).to be
+ expect(Sms77::Hooks::Validator::target_url?(hook[:target_url])).to be
+ end
+ end
+
+=begin
+ it 'subscribes' do
+ helper = Helper.new(Sms77::Resources::Hooks)
+ stub = alter_action_stub.merge({ :id => rand(1...1000000) })
+
+ res = request(helper.resource.method(:subscribe), stub, {
+ :event_type => Sms77::Hooks::EventType::NEW_INBOUND_SMS,
+ :request_method => Sms77::Hooks::RequestMethod::GET,
+ :target_url => "http://ruby.tld/#{SecureRandom.uuid}"
+ })
+
+ expect(Sms77::Util::is_positive_integer?(res[:id])).to be
+ expect(res[:id]).to be_a(Integer)
+ expect(stub[:id]).to match(res[:id]) unless Helper::IS_HTTP
+
+ assert_alter_response(res)
+
+ puts "Subscribed ID: #{Helper::IS_HTTP ? res[:id] : stub[:id]}"
+
+ HOOK_ID.set(res[:id])
+ end
+
+ it 'unsubscribes' do
+ helper = Helper.new(Sms77::Resources::Hooks)
+ id = HOOK_ID.get
+ res = request(helper.resource.method(:unubscribe), alter_action_stub, { :id => id })
+
+ assert_alter_response(res)
+
+ expect(res[:success]).to be_boolean
+
+ puts "Unsubscribed ID #{id}: #{res[:success]}"
+
+ res[:success]
+ end
+=end
+
+ def assert_alter_response(res)
+ expect(res[:code]).to match(nil)
+ expect(res[:success]).to be_boolean
+ end
end
\ No newline at end of file