From 33c5ab9938d7dc1e9f6cb0217262148d4a6fb218 Mon Sep 17 00:00:00 2001 From: shlok007 Date: Sun, 20 Aug 2017 15:32:07 +0530 Subject: [PATCH] Included tests for ConferenceDomainsService --- app/services/conference_domains_service.rb | 3 +- .../conference_domains_service_spec.rb | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 spec/services/conference_domains_service_spec.rb diff --git a/app/services/conference_domains_service.rb b/app/services/conference_domains_service.rb index aa9dfaef..8259fad5 100644 --- a/app/services/conference_domains_service.rb +++ b/app/services/conference_domains_service.rb @@ -12,11 +12,10 @@ class ConferenceDomainsService # * +false+ -> If the custom domain does not have a CNAME record for the hosted version def check_custom_domain require 'resolv' - unless ENV['OSEM_HOSTNAME'].nil? cname_record = Resolv::DNS.new.getresources(@conference.custom_domain, Resolv::DNS::Resource::IN::CNAME) if cname_record.present? - return ENV['OSEM_HOSTNAME'] == Resolv::DNS.new.getresources(custom_domain, Resolv::DNS::Resource::IN::CNAME).first.name.to_s + return ENV['OSEM_HOSTNAME'] == cname_record.first.name.to_s else return false end diff --git a/spec/services/conference_domains_service_spec.rb b/spec/services/conference_domains_service_spec.rb new file mode 100644 index 00000000..55019162 --- /dev/null +++ b/spec/services/conference_domains_service_spec.rb @@ -0,0 +1,28 @@ +require 'spec_helper' + +describe ConferenceDomainsService do + let!(:conference) { create(:conference, custom_domain: 'demo.osem.io') } + subject { ConferenceDomainsService.new(conference: conference) } + + describe 'return correct value' do + before do + ENV['OSEM_HOSTNAME'] = 'osem-demo.herokuapp.com' + end + + it 'returns true if cname record matches the domain name' do + expect(subject.check_custom_domain).to eq true + end + + it 'returns feature disabled if OSEM_HOSTNAME is not present' do + ENV['OSEM_HOSTNAME'] = nil + + expect(subject.check_custom_domain).to eq '--feature disabled--' + end + + it 'returns false if cname record is not present' do + conference.update_attribute(:custom_domain, 'osem-demo.herokuapp.com') + + expect(subject.check_custom_domain).to eq false + end + end +end