mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-24 15:49:39 +02:00
Handle case sensitive values when creating securities
This commit is contained in:
parent
867318cbc1
commit
d8e058d7c6
4 changed files with 49 additions and 8 deletions
41
test/models/security_test.rb
Normal file
41
test/models/security_test.rb
Normal file
|
@ -0,0 +1,41 @@
|
|||
require "test_helper"
|
||||
|
||||
class SecurityTest < ActiveSupport::TestCase
|
||||
# Below has 3 example scenarios:
|
||||
# 1. Original ticker
|
||||
# 2. Duplicate ticker on a different exchange (different market price)
|
||||
# 3. "Offline" version of the same ticker (for users not connected to a provider)
|
||||
test "can have duplicate tickers if exchange is different" do
|
||||
original = Security.create!(ticker: "TEST", exchange_operating_mic: "XNAS")
|
||||
duplicate = Security.create!(ticker: "TEST", exchange_operating_mic: "CBOE")
|
||||
offline = Security.create!(ticker: "TEST", exchange_operating_mic: nil)
|
||||
|
||||
assert original.valid?
|
||||
assert duplicate.valid?
|
||||
assert offline.valid?
|
||||
end
|
||||
|
||||
test "cannot have duplicate tickers if exchange is the same" do
|
||||
original = Security.create!(ticker: "TEST", exchange_operating_mic: "XNAS")
|
||||
duplicate = Security.new(ticker: "TEST", exchange_operating_mic: "XNAS")
|
||||
|
||||
assert_not duplicate.valid?
|
||||
assert_equal [ "has already been taken" ], duplicate.errors[:ticker]
|
||||
end
|
||||
|
||||
test "cannot have duplicate tickers if exchange is nil" do
|
||||
original = Security.create!(ticker: "TEST", exchange_operating_mic: nil)
|
||||
duplicate = Security.new(ticker: "TEST", exchange_operating_mic: nil)
|
||||
|
||||
assert_not duplicate.valid?
|
||||
assert_equal [ "has already been taken" ], duplicate.errors[:ticker]
|
||||
end
|
||||
|
||||
test "casing is ignored when checking for duplicates" do
|
||||
original = Security.create!(ticker: "TEST", exchange_operating_mic: "XNAS")
|
||||
duplicate = Security.new(ticker: "tEst", exchange_operating_mic: "xNaS")
|
||||
|
||||
assert_not duplicate.valid?
|
||||
assert_equal [ "has already been taken" ], duplicate.errors[:ticker]
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue