mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-24 15:49:39 +02:00
* Add lookbook + viewcomponent, organize design system file * Build menu component * Button updates * More button fixes * Replace all menus with new ViewComponent * Checkpoint: fix tests, all buttons and menus converted * Split into Link and Button components for clarity * Button cleanup * Simplify custom confirmation configuration in views * Finalize button, link component API * Add toggle field to custom form builder + Component * Basic tabs component * Custom tabs, convert all menu / tab instances in app * Gem updates * Centralized icon helper * Update all icon usage to central helper * Lint fixes * Centralize all disclosure instances * Dialog replacements * Consolidation of all dialog styles * Test fixes * Fix app layout issues, move to component with slots * Layout simplification * Flakey test fix * Fix dashboard mobile issues * Finalize homepage * Lint fixes * Fix shadows and borders in dark mode * Fix tests * Remove stale class * Fix filled icon logic * Move transparent? to public interface
74 lines
1.5 KiB
Ruby
74 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_portfolio
|
|
|
|
# Disable provider to focus on form testing
|
|
Security.stubs(:provider).returns(nil)
|
|
end
|
|
|
|
test "can create buy transaction" do
|
|
shares_qty = 25
|
|
|
|
open_new_trade_modal
|
|
|
|
fill_in "Ticker symbol", with: "AAPL"
|
|
fill_in "Date", with: Date.current
|
|
fill_in "Quantity", with: shares_qty
|
|
fill_in "entry[price]", with: 214.23
|
|
|
|
click_button "Add transaction"
|
|
|
|
visit_trades
|
|
|
|
within_trades do
|
|
assert_text "Buy #{shares_qty} shares of AAPL"
|
|
end
|
|
end
|
|
|
|
test "can create sell transaction" do
|
|
qty = 10
|
|
aapl = @account.holdings.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: qty
|
|
fill_in "entry[price]", with: 215.33
|
|
|
|
click_button "Add transaction"
|
|
|
|
visit_trades
|
|
|
|
within_trades do
|
|
assert_text "Sell #{qty} shares of AAPL"
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def open_new_trade_modal
|
|
click_on "New transaction"
|
|
end
|
|
|
|
def within_trades(&block)
|
|
within "#" + dom_id(@account, "entries"), &block
|
|
end
|
|
|
|
def visit_trades
|
|
visit account_path(@account, tab: "activity")
|
|
end
|
|
|
|
def visit_account_portfolio
|
|
visit account_path(@account, tab: "holdings")
|
|
end
|
|
end
|