@@ -5,6 +5,160 @@ import type { Event } from '@/data/constants'
55
66export const events2026 : Event [ ] = [
77
8- // [업데이트 필요] 행사 확정 시 항목 추가 (dummy-data.md 참고)
8+ // ── [TEST] 상태 1: 접수 없는 행사 (내부 행사) ──────────────────────
9+ {
10+ slug : '2026-test-no-recruit' ,
11+ title : '[TEST 1] 접수 없는 행사' ,
12+ eventDate : { start : '2026-03-15' , startTime : '14:00' , endTime : '18:00' } ,
13+ format : [ 'offline' ] ,
14+ kind : 'regular' ,
15+ audience : 'operator' ,
16+ summary : '접수 기간 없이 진행되는 내부 행사 (운영진 한정).' ,
17+ } ,
18+
19+ // ── [TEST] 상태 2a: 접수 전 (2주 초과 → 역대 행사 미노출, 올해 행사 노출) ──
20+ {
21+ slug : '2026-test-before-recruit-hidden' ,
22+ title : '[TEST 2a] 접수 전 (2주 초과, 역대 행사 미노출)' ,
23+ eventDate : { start : '2026-04-24' , startTime : '15:00' , endTime : '19:00' } ,
24+ recruitDate : { start : '2026-03-25' , end : '2026-04-22' } ,
25+ format : [ 'offline' ] ,
26+ kind : 'regular' ,
27+ audience : 'members' ,
28+ summary : '접수 시작이 2주 넘게 남아 역대 행사 탭에서 미노출, 올해 행사 탭엔 노출.' ,
29+ } ,
30+
31+ // ── [TEST] 상태 2b: 접수 전 (2주 이내 → 역대 행사·올해 행사 모두 노출) ──
32+ {
33+ slug : '2026-test-before-recruit-visible' ,
34+ title : '[TEST 2b] 접수 전 (2주 이내, 역대 행사 노출)' ,
35+ eventDate : { start : '2026-04-09' , startTime : '15:00' , endTime : '19:00' } ,
36+ recruitDate : { start : '2026-03-15' , end : '2026-04-07' } ,
37+ format : [ 'offline' ] ,
38+ kind : 'regular' ,
39+ audience : 'members' ,
40+ summary : '접수 시작이 2주 이내라 역대 행사 탭에서도 노출.' ,
41+ } ,
42+
43+ // ── [TEST] 상태 3: 접수 중 (행사 전) ──────────────────────────────
44+ {
45+ slug : '2026-test-recruiting' ,
46+ title : '[TEST 3] 접수 중인 행사' ,
47+ eventDate : { start : '2026-03-20' , startTime : '18:00' , endTime : '21:00' } ,
48+ recruitDate : { start : '2026-02-20' , end : '2026-03-10' } ,
49+ format : [ 'offline' ] ,
50+ kind : 'regular' ,
51+ audience : 'open' ,
52+ summary : '현재 접수 기간이 진행 중인 행사.' ,
53+ capacity : 100 ,
54+ } ,
55+
56+ // ── [TEST] 상태 4: 접수 종료, 행사 전 ─────────────────────────────
57+ {
58+ slug : '2026-test-recruit-closed' ,
59+ title : '[TEST 4] 접수 종료, 행사 대기 중' ,
60+ eventDate : { start : '2026-03-10' , startTime : '13:00' , endTime : '17:00' } ,
61+ recruitDate : { start : '2026-02-01' , end : '2026-02-28' } ,
62+ format : [ 'online' ] ,
63+ kind : 'regular' ,
64+ audience : 'open' ,
65+ summary : '접수는 마감됐고 아직 행사 당일이 되지 않은 상태.' ,
66+ capacity : 50 ,
67+ } ,
68+
69+ // ── [TEST] 상태 5: 행사 당일 ───────────────────────────────────────
70+ {
71+ slug : '2026-test-today' ,
72+ title : '[TEST 5] 오늘 행사' ,
73+ eventDate : { start : '2026-03-06' , startTime : '10:00' , endTime : '18:00' } ,
74+ recruitDate : { start : '2026-02-10' , end : '2026-03-04' } ,
75+ format : [ 'offline' , 'online' ] ,
76+ kind : 'regular' ,
77+ audience : 'open' ,
78+ summary : '오늘 진행 중인 행사.' ,
79+ capacity : 80 ,
80+ } ,
81+
82+ // ── [TEST] 상태 6: 행사 종료, 데이터 미취합 ───────────────────────
83+ {
84+ slug : '2026-test-past-no-data' ,
85+ title : '[TEST 6] 행사 종료 (데이터 미취합)' ,
86+ eventDate : { start : '2026-02-15' , startTime : '13:00' , endTime : '17:00' } ,
87+ recruitDate : { start : '2026-01-21' , end : '2026-02-14' } ,
88+ format : [ 'offline' ] ,
89+ kind : 'regular' ,
90+ audience : 'members' ,
91+ summary : '행사는 끝났지만 참여자 현황이 아직 집계되지 않은 상태.' ,
92+ capacity : 60 ,
93+ } ,
94+
95+ // ── [TEST] 상태 7: 완전 마무리 ────────────────────────────────────
96+ {
97+ slug : '2026-test-completed' ,
98+ title : '[TEST 7] 완전 마무리된 행사' ,
99+ eventDate : { start : '2026-02-01' , startTime : '14:00' , endTime : '18:00' } ,
100+ recruitDate : { start : '2026-01-06' , end : '2026-01-31' } ,
101+ format : [ 'offline' ] ,
102+ kind : 'regular' ,
103+ audience : 'open' ,
104+ summary : '행사도 끝나고 참여자 현황까지 모두 취합 완료된 상태.' ,
105+ capacity : 80 ,
106+ registrants : { members : 30 , regular : 20 , external : 15 , operator : 10 , partner : 2 } ,
107+ attendees : { members : 28 , regular : 18 , external : 12 , operator : 10 , partner : 2 } ,
108+ } ,
109+
110+ // ── [TEST] 상태 8a: 계획중 — 월만 확정 ───────────────────────────
111+ {
112+ slug : '2026-test-planning-month' ,
113+ title : '[TEST 8a] 계획중 (월만 확정)' ,
114+ eventDate : { start : '2026-11-01' , precision : 'month' } ,
115+ format : [ 'offline' ] ,
116+ kind : 'regular' ,
117+ audience : 'open' ,
118+ summary : '날짜가 아직 확정되지 않은 계획중 행사 — 월만 알려진 케이스.' ,
119+ } ,
120+
121+ // ── [TEST] 상태 8b: 계획중 — 후보 날짜 여러 개 ────────────────────
122+ {
123+ slug : '2026-test-planning-candidates' ,
124+ title : '[TEST 8b] 계획중 (후보 날짜)' ,
125+ eventDate : { start : '2026-12-06' , candidates : [ '2026-12-06' , '2026-12-13' , '2026-12-20' ] } ,
126+ format : [ 'offline' ] ,
127+ kind : 'regular' ,
128+ audience : 'open' ,
129+ summary : '날짜가 아직 확정되지 않은 계획중 행사 — 후보 날짜 복수 케이스.' ,
130+ } ,
131+
132+ // ── [TEST] 다일 행사 (eventDate.end 있음) ──────────────────────────
133+ {
134+ slug : '2026-test-multiday' ,
135+ title : '[TEST 9] 다일 행사 (이틀)' ,
136+ eventDate : { start : '2026-05-09' , end : '2026-05-10' , startTime : '10:00' , endTime : '18:00' } ,
137+ recruitDate : { start : '2026-04-20' , end : '2026-05-08' } ,
138+ format : [ 'offline' ] ,
139+ kind : 'regular' ,
140+ audience : 'open' ,
141+ summary : '이틀에 걸쳐 진행되는 다일 행사.' ,
142+ capacity : 100 ,
143+ } ,
144+
145+ // ── [TEST] 장소 정보 포함 ───────────────────────────────────────────
146+ {
147+ slug : '2026-test-with-location' ,
148+ title : '[TEST 10] 장소 정보 포함 행사' ,
149+ eventDate : { start : '2026-06-06' , startTime : '14:00' , endTime : '18:00' } ,
150+ recruitDate : { start : '2026-05-18' , end : '2026-06-05' } ,
151+ location : '멀티캠퍼스 역삼 18층' ,
152+ locationUrl : {
153+ naver : 'https://naver.me/x5GzwAww' ,
154+ kakao : 'https://place.map.kakao.com/21414107' ,
155+ google : 'https://maps.app.goo.gl/7cw8g2vDrjxw1AQU9' ,
156+ } ,
157+ format : [ 'offline' ] ,
158+ kind : 'regular' ,
159+ audience : 'open' ,
160+ summary : '지도 링크 렌더링 테스트용 행사.' ,
161+ capacity : 80 ,
162+ } ,
9163
10164]
0 commit comments