summaryrefslogtreecommitdiff
path: root/test/models/concerns
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-04 01:24:55 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-04 01:24:55 +0200
commit206dc5c50a73c5402b90d7fdc8945d3ba9356758 (patch)
treeb2c98c48248c878da4344e61734bfa89130f18d1 /test/models/concerns
parentd9461bae0b6232d618dde118360b44bb80f962b8 (diff)
Add self-service event creation from nodes#show
nodes#show's events table now renders unconditionally (previously hidden entirely for a zero-event node) and gains an "add event" link. The suggested tag_list is derived from the page's own category tags via NodesHelper::DEFAULT_EVENT_TAG_BY_PAGE_TAG (erfa-detail/ chaostreff-detail -> open-day) rather than hardcoded, and degrades to a blank field for any node whose tags don't match - deliberately universal, not chapter-specific, since Updates have historically carried event dates the same way. events#new surfaces *why* the tag was pre-filled via flash.now (not flash - this is a same-request render, not a redirect), using an explicit auto_tag_source param passed alongside tag_list rather than having the controller re-derive the reason from node_id. No destroy link added to nodes#show's events list - deliberate, per existing subnav-semantics convention (destructive actions live on the resource's own views). Covered directly by test. Adds real coverage for EventsController, previously 100% commented-out scaffold, plus unit tests for the new tag-mapping helper and the weekday-abbreviation helpers from the prior commit.
Diffstat (limited to 'test/models/concerns')
-rw-r--r--test/models/concerns/rrule_humanizer_test.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/models/concerns/rrule_humanizer_test.rb b/test/models/concerns/rrule_humanizer_test.rb
index 500dbc7..279ff73 100644
--- a/test/models/concerns/rrule_humanizer_test.rb
+++ b/test/models/concerns/rrule_humanizer_test.rb
@@ -81,4 +81,19 @@ class RruleHumanizerTest < ActiveSupport::TestCase
81 test "falls back to english for unknown locale" do 81 test "falls back to english for unknown locale" do
82 assert_equal "Every Tuesday", humanize("FREQ=WEEKLY;BYDAY=TU", :fr) 82 assert_equal "Every Tuesday", humanize("FREQ=WEEKLY;BYDAY=TU", :fr)
83 end 83 end
84
85 test "wday_abbr returns the correct German abbreviation for each day" do
86 monday = Time.parse("2026-07-06") # confirmed Monday
87 assert_equal "Mo", RruleHumanizer.wday_abbr(monday, :de)
88 assert_equal "Di", RruleHumanizer.wday_abbr(monday + 1.day, :de)
89 assert_equal "Mi", RruleHumanizer.wday_abbr(monday + 2.days, :de)
90 assert_equal "Do", RruleHumanizer.wday_abbr(monday + 3.days, :de)
91 assert_equal "Fr", RruleHumanizer.wday_abbr(monday + 4.days, :de)
92 assert_equal "Sa", RruleHumanizer.wday_abbr(monday + 5.days, :de)
93 assert_equal "So", RruleHumanizer.wday_abbr(monday + 6.days, :de)
94 end
95
96 test "wday_abbr falls back to :de for an unrecognized locale" do
97 assert_equal "Mo", RruleHumanizer.wday_abbr(Time.parse("2026-07-06"), :fr)
98 end
84end 99end