mirror of
https://github.com/we-promise/sure.git
synced 2026-04-07 14:31:25 +00:00
* feat: add new UI component to display dropdown select with filter * feat: use new dropdown componet for category selection in transactions * feat: improve dropdown controller * feat: Add checkbox indicator to highlight selected element in list * feat: add possibility to define dropdown without search * feat: initial implementation of variants * feat: Add default color for dropdown menu * feat: add "icon" variant for dropdown * refactor: component + controller refactoring * refactor: view + component * fix: adjust min width in selection for mobile * feat: refactor collection_select method to use new filter dropdown component * fix: compute fixed position for dropdown * feat: controller improvements * lint issues * feat: add dot color if no icon is available * refactor: controller refactor + update naming for variant from icon to logo * fix: set width to 100% for select dropdown * feat: add variant to collection_select in new transaction form * fix: typo in placeholder value * fix: add back include_blank property * refactor: rename component from FilterDropdown to Select * fix: translate placeholder and keep value_method and text_method * fix: remove duplicate variable assignment * fix: translate placeholder * fix: verify color format * fix: use right autocomplete value * fix: selection issue + controller adjustments * fix: move calls to startAutoUpdate and stopAutoUpdate * Update app/javascript/controllers/select_controller.js Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Signed-off-by: Alessio Cappa <104093777+alessiocappa@users.noreply.github.com> * fix: add aria-labels * fix: pass html_options to DS::Select * fix: unnecessary closing tag * fix: use offsetvalue for position checks * fix: use right classes for dropdown transitions * include options[:prompt] in placeholder init * fix: remove unused locale key * fix: Emit a native change event after updating the input value. * fix: Guard against negative maxHeight in constrained layouts. * fix: Update test * fix: lint issues * Update test/system/transfers_test.rb Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Signed-off-by: Alessio Cappa <104093777+alessiocappa@users.noreply.github.com> * Update test/system/transfers_test.rb Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Signed-off-by: Alessio Cappa <104093777+alessiocappa@users.noreply.github.com> * refactor: move CSS class for button select form in maybe-design-system.css --------- Signed-off-by: Alessio Cappa <104093777+alessiocappa@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
53 lines
1.4 KiB
Ruby
53 lines
1.4 KiB
Ruby
require "application_system_test_case"
|
|
|
|
class TransfersTest < ApplicationSystemTestCase
|
|
setup do
|
|
sign_in @user = users(:family_admin)
|
|
visit transactions_url
|
|
end
|
|
|
|
test "can create a transfer" do
|
|
checking_name = accounts(:depository).name
|
|
savings_name = accounts(:credit_card).name
|
|
transfer_date = Date.current
|
|
|
|
click_on "New transaction"
|
|
click_on "Transfer"
|
|
assert_text "New transfer"
|
|
|
|
# Select accounts using DS::Select
|
|
select_ds("From", checking_name)
|
|
select_ds("To", savings_name)
|
|
|
|
fill_in "transfer[amount]", with: 500
|
|
fill_in "Date", with: transfer_date
|
|
|
|
click_button "Create transfer"
|
|
|
|
within "#entry-group-#{transfer_date}" do
|
|
assert_text "Payment to"
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def select_ds(label_text, option_text)
|
|
field_label = find("label", exact_text: label_text)
|
|
container = field_label.ancestor("div.relative")
|
|
|
|
# Click the button to open the dropdown
|
|
container.find("button").click
|
|
|
|
# If searchable, type in the search input
|
|
if container.has_selector?("input[type='search']", visible: true)
|
|
container.find("input[type='search']", visible: true).set(option_text)
|
|
end
|
|
|
|
# Wait for the listbox to appear inside the relative container
|
|
listbox = container.find("[role='listbox']", visible: true)
|
|
|
|
# Click the option inside the listbox
|
|
listbox.find("[role='option']", exact_text: option_text, visible: true).click
|
|
end
|
|
end
|