adicionado testes de rotas e alrerado padroes
This commit is contained in:
parent
7e7cf8e7df
commit
f2eea9962b
8 changed files with 460 additions and 15 deletions
29
src/testes/TipagemRotas.test.ts
Normal file
29
src/testes/TipagemRotas.test.ts
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
import { describe, expect, it } from "vitest"
|
||||
import { TipagemRotas } from "../tipagemRotas"
|
||||
|
||||
describe("TipagemRotas", () => {
|
||||
it("deve montar _partesCaminho a partir de string ou array, normalizando barras", () => {
|
||||
const r1 = new TipagemRotas<{ q: string }>({ caminho: "aplicacao/func" })
|
||||
expect(r1.caminho).toBe("/aplicacao/func")
|
||||
|
||||
const r2 = new TipagemRotas<{ q: string }>({
|
||||
caminho: ["aplicacao", "func"],
|
||||
})
|
||||
expect(r2.caminho).toBe("/aplicacao/func")
|
||||
|
||||
const r3 = new TipagemRotas<{ q: string }>({ caminho: "/a//b///c/" })
|
||||
expect(r3.caminho).toBe("/a/b/c")
|
||||
})
|
||||
|
||||
it("Valores de entrada com mesmo valor dos valores de saída", () => {
|
||||
type tipagem = { nome: string; idade: number }
|
||||
const r1 = new TipagemRotas<tipagem>({ caminho: "aplicacao/func" })
|
||||
const objetoEntrada: tipagem = { idade: 21, nome: "João" }
|
||||
|
||||
const rota = r1.endereco(objetoEntrada)
|
||||
|
||||
const parametros = r1.parametros(rota)
|
||||
|
||||
expect(parametros.nome).toBe(objetoEntrada.nome)
|
||||
})
|
||||
})
|
||||
|
|
@ -106,10 +106,14 @@ export class TipagemRotas<T extends { [q: string]: any }> {
|
|||
** {q:"query"}
|
||||
*/
|
||||
|
||||
get parametros() {
|
||||
const url = new URL(
|
||||
typeof window !== "undefined" ? window.location.href : "http://localhost",
|
||||
)
|
||||
parametros(urlEntrada?: string) {
|
||||
const url = urlEntrada
|
||||
? new URL(urlEntrada)
|
||||
: new URL(
|
||||
typeof window !== "undefined"
|
||||
? window.location.href
|
||||
: "http://localhost",
|
||||
)
|
||||
const query = url.searchParams
|
||||
const queryObj = Object.fromEntries(query.entries())
|
||||
|
||||
|
|
@ -130,4 +134,5 @@ export class TipagemRotas<T extends { [q: string]: any }> {
|
|||
|
||||
return queryObj as Partial<T>
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue