diff --git a/src/pages/subscription/Subscription.jsx b/src/pages/subscription/Subscription.jsx index 9881475..24f708a 100644 --- a/src/pages/subscription/Subscription.jsx +++ b/src/pages/subscription/Subscription.jsx @@ -5,23 +5,13 @@ import PullToRefresh from '../../components/PullToRefresh'; import FAB from '../../components/FAB'; import DistrictTierEditor from './components/DistrictTierEditor'; import NotificationSettings from './components/NotificationSettings'; +import StatusBadge from './components/StatusBadge'; import './Subscription.css'; import { STATUS_CONFIG, HOUSE_TYPE_LABELS, TABS, STATUS_FILTERS, DEFAULT_PROFILE, extractTier, fmt, fmtFull, getDDays, getDDayColor, fmtDateTime, apiPatch, fmtPrice, } from './subscriptionUtils'; -// ── StatusBadge ────────────────────────────────────────────────────────────── -function StatusBadge({ status, size }) { - const cfg = STATUS_CONFIG[status] || { color: '#94a3b8', bg: 'rgba(148,163,184,0.1)' }; - const cls = size === 'lg' ? 'sub-badge sub-badge--lg' : 'sub-badge'; - return ( - - {status || '알 수 없음'} - - ); -} - // ── DashboardTab ───────────────────────────────────────────────────────────── function DashboardTab() { const [dashboard, setDashboard] = useState(null); diff --git a/src/pages/subscription/components/StatusBadge.jsx b/src/pages/subscription/components/StatusBadge.jsx new file mode 100644 index 0000000..66c5e3e --- /dev/null +++ b/src/pages/subscription/components/StatusBadge.jsx @@ -0,0 +1,14 @@ +import React from 'react'; +import { STATUS_CONFIG } from '../subscriptionUtils'; + +function StatusBadge({ status, size }) { + const cfg = STATUS_CONFIG[status] || { color: '#94a3b8', bg: 'rgba(148,163,184,0.1)' }; + const cls = size === 'lg' ? 'sub-badge sub-badge--lg' : 'sub-badge'; + return ( + + {status || '알 수 없음'} + + ); +} + +export default StatusBadge; diff --git a/src/pages/subscription/components/StatusBadge.test.jsx b/src/pages/subscription/components/StatusBadge.test.jsx new file mode 100644 index 0000000..148191b --- /dev/null +++ b/src/pages/subscription/components/StatusBadge.test.jsx @@ -0,0 +1,14 @@ +import { describe, it, expect } from 'vitest'; +import { render, screen } from '@testing-library/react'; +import StatusBadge from './StatusBadge.jsx'; + +describe('StatusBadge', () => { + it('status 라벨 렌더', () => { + render(); + expect(screen.getByText('청약중')).toBeInTheDocument(); + }); + it('미정의 status → "알 수 없음" 폴백', () => { + render(); + expect(screen.getByText('알 수 없음')).toBeInTheDocument(); + }); +});