diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7152a772..79610ee7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -113,7 +113,7 @@ importers: version: 0.45.0 postcss: specifier: ^8.4.39 - version: 8.5.15 + version: 8.5.17 prettier: specifier: 3.5.3 version: 3.5.3 @@ -3352,8 +3352,8 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - nanoid@3.3.12: - resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + nanoid@3.3.15: + resolution: {integrity: sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -3556,8 +3556,12 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.15: - resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==} + postcss@8.5.16: + resolution: {integrity: sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.5.17: + resolution: {integrity: sha512-J7EF+8X+CzRPaJPOv9Ck2wNWJvGnnl3PcNPAdGg6GTLjyVpyQ0yATMSXRFRV01BviT/9Gwuc3rjEyJbDJG9a4w==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -5332,7 +5336,7 @@ snapshots: '@alloc/quick-lru': 5.2.0 '@tailwindcss/node': 4.3.0 '@tailwindcss/oxide': 4.3.0 - postcss: 8.5.15 + postcss: 8.5.16 tailwindcss: 4.3.0 '@testing-library/dom@10.4.1': @@ -8155,7 +8159,7 @@ snapshots: ms@2.1.3: {} - nanoid@3.3.12: {} + nanoid@3.3.15: {} natural-compare@1.4.0: {} @@ -8340,9 +8344,9 @@ snapshots: postcss-resolve-nested-selector@0.1.6: {} - postcss-safe-parser@7.0.1(postcss@8.5.15): + postcss-safe-parser@7.0.1(postcss@8.5.16): dependencies: - postcss: 8.5.15 + postcss: 8.5.16 postcss-selector-parser@7.1.1: dependencies: @@ -8353,13 +8357,19 @@ snapshots: postcss@8.4.31: dependencies: - nanoid: 3.3.12 + nanoid: 3.3.15 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postcss@8.5.16: + dependencies: + nanoid: 3.3.15 picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.15: + postcss@8.5.17: dependencies: - nanoid: 3.3.12 + nanoid: 3.3.15 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -8893,9 +8903,9 @@ snapshots: micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.15 + postcss: 8.5.16 postcss-resolve-nested-selector: 0.1.6 - postcss-safe-parser: 7.0.1(postcss@8.5.15) + postcss-safe-parser: 7.0.1(postcss@8.5.16) postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 diff --git a/src/features/about/activity/CardItem.spec.tsx b/src/features/about/activity/CardItem.spec.tsx new file mode 100644 index 00000000..75054459 --- /dev/null +++ b/src/features/about/activity/CardItem.spec.tsx @@ -0,0 +1,26 @@ +import { render, screen } from '@testing-library/react'; + +import { ActivityType, type Activity } from './models'; +import { CardItem } from './CardItem'; + +const activity: Activity = { + name: 'FEConf', + type: ActivityType.conference, + startDate: 2024, + url: 'https://feconf.kr', +}; + +describe('CardItem', () => { + it('should render activity type and external link', () => { + render( + , + ); + + expect(screen.getByText(ActivityType.conference)).toBeVisible(); + const link = screen.getByRole('link', { name: 'FEConf' }); + expect(link).toHaveAttribute('href', 'https://feconf.kr'); + expect(link).toHaveAttribute('target', '_blank'); + }); +}); diff --git a/src/features/about/shared/Label.spec.tsx b/src/features/about/shared/Label.spec.tsx new file mode 100644 index 00000000..4fec2061 --- /dev/null +++ b/src/features/about/shared/Label.spec.tsx @@ -0,0 +1,34 @@ +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; + +import { Label } from './Label'; + +describe('Label', () => { + it('should render static heading when onClick is omitted', () => { + render(