butter-router
v0.0.5
Published
- [×] Crear una forma de hacer MPAs (Multiple Page Application) - [×] Crear una forma de hacer SPAs (Single Page Applications) - [×] Poder navegar entre páginas con el botón de atrás - [×] Crear un componente Link para hacerlo declarativo - [×] Crear un c
Downloads
3
Readme
Crear un React Router desde cero
- [×] Crear una forma de hacer MPAs (Multiple Page Application)
- [×] Crear una forma de hacer SPAs (Single Page Applications)
- [×] Poder navegar entre páginas con el botón de atrás
- [×] Crear un componente Link para hacerlo declarativo
- [×] Crear un componente Router para hacerlo más declarativo
- [×] Soportar una ruta por degecto (404)
- [×] Soporter rutas con parámetros
- [×] Componente para hacerlo declarativo
- [×] Lazy Loading de las rutas
- [×] Hacer un i18n con las rutas
- [×] Testing
- [×] Publicar el paquete en NPM usando
npm publish
(el publish utiliza el comandoprepare
del package.json)
Testing
Para el testing usaremos vitest: para instalarlo se usó el comando pnpm install vitest -D
-D es para que se instale como dependencia de desarrollo (y no se incluya en producción)
También se necesitará unas librerías para que vitest pueda hacer testing del render y su funcionamiento sin usar un navegador, para esto se usarán dos librerías:
- happy-dom → Para instalarlo se usó el comando
pnpm install happy-dom -D
- @testing-library/react → Para instalarlo se usó el comando
pnpm install @testing-library/react -D
Después de instalar las librerías se tiene que hacer una pequeña configuración:
Archivo package.json
(nota: esto no es realmente necesario pero sólo lo hace más simple):
- En la propiedad
"scripts"
se agrega un comandotest
usando vitest, quedando así la propiedad"test": "vitest"
Archivo vite.config.js
:
- Se tiene que determinar el enviroment donde se realizarán los tests, quedaría algo así:
export default defineConfig({
plugins: [react()],
test: { // se agrega la propiedad test
environment: 'happy-dom', // establecemos el enviroment que en este caso será con happy-dom
}
})