diff --git a/app/controllers/api/v1/auctions_controller.rb b/app/controllers/api/v1/auctions_controller.rb index 9a01f4e68..07f4971dc 100644 --- a/app/controllers/api/v1/auctions_controller.rb +++ b/app/controllers/api/v1/auctions_controller.rb @@ -31,6 +31,7 @@ module Api end auction.mark_deadline(params[:registration_deadline]) if params[:registration_deadline] + auction.platform = params[:platform] == 'english' ? :manual : :auto if auction.payment_not_received? || auction.domain_not_registered? update_whois_from_auction(Auction.pending(auction.domain)) diff --git a/app/models/auction.rb b/app/models/auction.rb index 465a827ec..d1c46d44e 100644 --- a/app/models/auction.rb +++ b/app/models/auction.rb @@ -84,7 +84,9 @@ class Auction < ApplicationRecord end def restart - new_auction = self.class.new(domain: domain) + new_platform = platform.nil? ? :auto : platform + + new_auction = self.class.new(domain: domain, platform: new_platform) new_auction.start end diff --git a/test/integration/api/v1/auctions/update_test.rb b/test/integration/api/v1/auctions/update_test.rb index 4e48c0ca5..099c8d529 100644 --- a/test/integration/api/v1/auctions/update_test.rb +++ b/test/integration/api/v1/auctions/update_test.rb @@ -28,7 +28,7 @@ class ApiV1AuctionUpdateTest < ActionDispatch::IntegrationTest assert_equal ({ 'id' => '1b3ee442-e8fe-4922-9492-8fcb9dccc69c', 'domain' => 'auction.test', 'status' => Auction.statuses[:awaiting_payment], - 'platform' => nil }), ActiveSupport::JSON.decode(response.body) + 'platform' => "auto" }), ActiveSupport::JSON.decode(response.body) end def test_marks_as_awaiting_payment diff --git a/test/models/auction_test.rb b/test/models/auction_test.rb index bdac5c79d..5df7166b2 100644 --- a/test/models/auction_test.rb +++ b/test/models/auction_test.rb @@ -131,6 +131,49 @@ class AuctionTest < ActiveSupport::TestCase assert_not @auction.domain_registrable?('') end + def test_restart_new_auction_should_with_previous_manual_platform + @auction.update(platform: 'manual') + @auction.reload + + assert_equal @auction.platform, 'manual' + + assert_difference 'Auction.count' do + @auction.restart + end + + new_auction = Auction.last + assert_equal new_auction.platform, 'manual' + end + + def test_restart_new_auction_should_with_previous_auto_platform + @auction.update(platform: 'auto') + @auction.reload + + assert_equal @auction.platform, 'auto' + + assert_difference 'Auction.count' do + @auction.restart + end + + new_auction = Auction.last + assert_equal new_auction.platform, 'auto' + end + + def test_restart_new_auction_should_with_auto_if_platform_is_nil + @auction.update(platform: nil) + @auction.reload + + assert_nil @auction.platform + + assert_difference 'Auction.count' do + @auction.restart + end + + new_auction = Auction.last + assert_equal new_auction.platform, 'auto' + end + + def test_restarts_an_auction assert_equal 'auction.test', @auction.domain @@ -142,4 +185,30 @@ class AuctionTest < ActiveSupport::TestCase assert_equal 'auction.test', new_auction.domain assert new_auction.started? end + + def test_auction_restart_should_assign_the_previous_manual_platform + assert_equal 'auction.test', @auction.domain + @auction.update(platform: :manual) + @auction.reload + + assert_difference 'Auction.count' do + @auction.restart + end + + auctions = Auction.where(domain: @auction.domain) + assert_equal auctions.first.platform, auctions.last.platform + end + + def test_auction_restart_should_assign_the_previous_auto_platform + assert_equal 'auction.test', @auction.domain + @auction.update(platform: :auto) + @auction.reload + + assert_difference 'Auction.count' do + @auction.restart + end + + auctions = Auction.where(domain: @auction.domain) + assert_equal auctions.first.platform, auctions.last.platform + end end \ No newline at end of file