Skip to content

Commit fedf742

Browse files
authored
✨ - Add Vitest configuration and unit test (#36)
1 parent 4f60c2a commit fedf742

File tree

15 files changed

+5168
-325
lines changed

15 files changed

+5168
-325
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const config = { autoAddCss: false }

__mocks__/next/font/google.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { vi } from "vitest";
2+
3+
export const Roboto = vi.fn(()=> {
4+
return {
5+
weight: ['400', '700'],
6+
subsets: ['latin'],
7+
variable: '--font-roboto',
8+
}
9+
});
10+
11+
export const Khula = vi.fn(()=> {
12+
return {
13+
weight: ['400'],
14+
subsets: ['latin'],
15+
variable: '--font-inter',
16+
}
17+
});

__mocks__/next/navigation.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { vi } from 'vitest'
2+
3+
// __mocks__/next/navigation.js
4+
export const notFound = vi.fn(() => {})

__test__/_app/Footer.test.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { describe, expect, it } from 'vitest'
2+
import { render, screen } from '@testing-library/react'
3+
import Footer from '../../src/components/Footer'
4+
5+
describe('Footer', () => {
6+
it('should render', () => {
7+
const component = render(<Footer />)
8+
expect(component).toBeDefined()
9+
})
10+
it('should render regresar label', () => {
11+
render(<Footer />)
12+
expect(screen.getByText('Regresar')).toBeDefined()
13+
})
14+
})

__test__/_app/Layout.test.tsx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { describe, expect, it } from 'vitest'
2+
import { render, screen } from '@testing-library/react'
3+
import React from 'react'
4+
import Layout from '../../src/app/layout'
5+
6+
describe('Layout', () => {
7+
it('should render layout', () => {
8+
const component = render(<Layout>
9+
<h1>Layout Testing</h1>
10+
</Layout>)
11+
expect(component).toBeDefined()
12+
})
13+
14+
it('should render child element', () => {
15+
render(
16+
<Layout>
17+
<h1>Layout Testing</h1>
18+
</Layout>
19+
)
20+
expect(screen.getByText('Layout Testing')).toBeDefined()
21+
})
22+
})

__test__/_app/Loading.test.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { expect, it, describe } from 'vitest'
2+
import { render, screen } from "@testing-library/react"
3+
import Loading from '../../src/app/loading'
4+
5+
describe('Loading', () => {
6+
it('should render', () => {
7+
const component = render(<Loading />)
8+
expect(component).toBeDefined()
9+
})
10+
it('should display loading label', () => {
11+
render(<Loading />)
12+
expect(screen.getByText('Loading...')).toBeTruthy()
13+
})
14+
})

__test__/_app/Page.test.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { describe, expect, it} from 'vitest'
2+
import Page from '../../src/app/page'
3+
import { render, screen } from '@testing-library/react'
4+
5+
describe('Page', () => {
6+
it('should render', () => {
7+
const component = render(<Page />)
8+
expect(component).toBeDefined()
9+
})
10+
it('should render blog title', () => {
11+
12+
render(<Page />)
13+
expect(screen.getByText('Blog')).toBeDefined()
14+
})
15+
})

__test__/_app/[slug]/Page.test.tsx

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import { describe, expect, it } from 'vitest'
2+
import BlogPage, { generateMetadata } from '../../../src/app/[slug]/page'
3+
import { render } from '@testing-library/react'
4+
5+
describe('PageSlug', () => {
6+
it('Should render', async () => {
7+
const jsx = await BlogPage({
8+
params: { slug: 'resources_developers' },
9+
})
10+
const component = render(jsx)
11+
expect(component).toBeDefined()
12+
})
13+
})
14+
15+
describe('generateMetadata', () => {
16+
it('Should return metadata', async () => {
17+
const metadata = await generateMetadata({
18+
params: { slug: 'resources_developers' },
19+
})
20+
expect(metadata).toEqual({
21+
description:
22+
'Mis 5 Sitios Favoritos para Aprender Programación | @claudio_coder',
23+
openGraph: {
24+
description:
25+
'Mis 5 Sitios Favoritos para Aprender Programación | @claudio_coder',
26+
images: 'https://claudiocoder.me/profile.jpg',
27+
locale: 'es',
28+
siteName: 'claudiocoder.me',
29+
title: 'Mis 5 Sitios Favoritos para Aprender Programación',
30+
url: 'https://claudiocoder.me/resources_developers',
31+
},
32+
title: 'Mis 5 Sitios Favoritos para Aprender Programación',
33+
twitter: {
34+
card: 'summary_large_image',
35+
description:
36+
'Mis 5 Sitios Favoritos para Aprender Programación | @claudio_coder',
37+
images: 'https://claudiocoder.me/profile.jpg',
38+
title: 'Mis 5 Sitios Favoritos para Aprender Programación',
39+
},
40+
})
41+
})
42+
})

0 commit comments

Comments
 (0)