diff --git a/bin/robot b/bin/robot index 943b44a90..0e77d4fba 100755 --- a/bin/robot +++ b/bin/robot @@ -23,7 +23,7 @@ cp config/database-robot.yml config/database.yml # rbenv does not have bundler by default if echo gem list --local bundler | grep -q "bundler" then echo 'bundler ok: already installed' - else + else echo 'Installing bundler...' gem install bundler fi @@ -31,6 +31,7 @@ bundle install RAILS_ENV=test bundle exec rake db:all:drop RAILS_ENV=test bundle exec rake db:all:setup +RAILS_ENV=test bundle exec rake zonefile:replace_procedure RAILS_ENV=test bundle exec rake assets:precompile echo "GIT_LAST_COMMITS" diff --git a/spec/fabricators/domain_fabricator.rb b/spec/fabricators/domain_fabricator.rb index 82671ecdb..e96787e34 100644 --- a/spec/fabricators/domain_fabricator.rb +++ b/spec/fabricators/domain_fabricator.rb @@ -1,5 +1,5 @@ Fabricator(:domain) do - name { sequence(:name) { |i| "fabricate_name#{i}.ee" } } + name { sequence(:name) { |i| "domain#{i}.ee" } } valid_to Date.new(2014, 8, 7) period 1 period_unit 'y' @@ -11,5 +11,5 @@ Fabricator(:domain) do end Fabricator(:domain_with_dnskeys, from: :domain) do - dnskeys(count: 1) + after_create { |domain| Fabricate(:dnskey, domain: domain) } end diff --git a/spec/models/zonefile_setting_spec.rb b/spec/models/zonefile_setting_spec.rb new file mode 100644 index 000000000..2239fa4c8 --- /dev/null +++ b/spec/models/zonefile_setting_spec.rb @@ -0,0 +1,53 @@ +require 'rails_helper' + +describe ZonefileSetting do + before { create_settings } + it 'generates the zonefile' do + ZonefileSetting.where({ + origin: 'ee', + ttl: 43200, + refresh: 3600, + retry: 900, + expire: 1209600, + minimum_ttl: 3600, + email: 'hostmaster.eestiinternet.ee', + master_nameserver: 'ns.tld.ee' + }).first_or_create! + + ZonefileSetting.where({ + origin: 'pri.ee', + ttl: 43200, + refresh: 3600, + retry: 900, + expire: 1209600, + minimum_ttl: 3600, + email: 'hostmaster.eestiinternet.ee', + master_nameserver: 'ns.tld.ee' + }).first_or_create! + + d = Fabricate(:domain_with_dnskeys) + d.nameservers << Nameserver.new({ + hostname: "ns.#{d.name}", + ipv4: '123.123.123.123', + ipv6: 'FE80:0000:0000:0000:0202:B3FF:FE1E:8329' + }) + + @zonefile = ActiveRecord::Base.connection.execute( + "select generate_zonefile('ee')" + )[0]['generate_zonefile'] + + @zonefile.should_not be_blank + @zonefile.scan(/^#{d.name}/).count.should == 5 + @zonefile.scan(/ns.#{d.name}/).count.should == 3 + @zonefile.scan('123.123.123.123').count.should == 1 + @zonefile.scan('FE80:0000:0000:0000:0202:B3FF:FE1E:8329').count.should == 1 + + @zonefile = ActiveRecord::Base.connection.execute( + "select generate_zonefile('pri.ee')" + )[0]['generate_zonefile'] + + @zonefile.should_not be_blank + + @zonefile.scan(/^#{d.name}/).count.should == 0 + end +end