mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 05:09:38 +02:00
68 lines
1.5 KiB
Ruby
68 lines
1.5 KiB
Ruby
|
require "application_system_test_case"
|
||
|
|
||
|
class TradesTest < ApplicationSystemTestCase
|
||
|
include ActiveJob::TestHelper
|
||
|
|
||
|
setup do
|
||
|
sign_in @user = users(:family_admin)
|
||
|
|
||
|
@account = accounts(:investment)
|
||
|
|
||
|
visit_account_trades
|
||
|
end
|
||
|
|
||
|
test "can create buy transaction" do
|
||
|
shares_qty = 25.0
|
||
|
|
||
|
open_new_trade_modal
|
||
|
|
||
|
fill_in "Ticker symbol", with: "NVDA"
|
||
|
fill_in "Date", with: Date.current
|
||
|
fill_in "Quantity", with: shares_qty
|
||
|
fill_in "account_entry[price]", with: 214.23
|
||
|
|
||
|
click_button "Add transaction"
|
||
|
|
||
|
visit_account_trades
|
||
|
|
||
|
within_trades do
|
||
|
assert_text "Purchase 10 shares of AAPL"
|
||
|
assert_text "Buy #{shares_qty} shares of NVDA"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
test "can create sell transaction" do
|
||
|
aapl = @account.holdings.current.find { |h| h.security.ticker == "AAPL" }
|
||
|
|
||
|
open_new_trade_modal
|
||
|
|
||
|
select "Sell", from: "Type"
|
||
|
fill_in "Ticker symbol", with: aapl.ticker
|
||
|
fill_in "Date", with: Date.current
|
||
|
fill_in "Quantity", with: aapl.qty
|
||
|
fill_in "account_entry[price]", with: 215.33
|
||
|
|
||
|
click_button "Add transaction"
|
||
|
|
||
|
visit_account_trades
|
||
|
|
||
|
within_trades do
|
||
|
assert_text "Sell #{aapl.qty} shares of AAPL"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def open_new_trade_modal
|
||
|
click_link "new_trade_account_#{@account.id}"
|
||
|
end
|
||
|
|
||
|
def within_trades(&block)
|
||
|
within "#" + dom_id(@account, "trades"), &block
|
||
|
end
|
||
|
|
||
|
def visit_account_trades
|
||
|
visit account_url(@account, tab: "trades")
|
||
|
end
|
||
|
end
|