Skip to content

Instantly share code, notes, and snippets.

@devajmeireles
Last active November 21, 2023 23:45
Show Gist options
  • Save devajmeireles/ade224f4484494a5af5c63c4e3e893c6 to your computer and use it in GitHub Desktop.
Save devajmeireles/ade224f4484494a5af5c63c4e3e893c6 to your computer and use it in GitHub Desktop.
Livewire Test Scheme

Teste de Conhecimento e Aptidão.

O objetivo deste teste é validar expressamente o seu conhecimento.

Stack

  • PHP 8
  • Laravel 10.x
  • TALL Stack (Livewire 3)

Tarefas

1. API
  1. Crie um modelador Todo (id, title, status, created_at, updated_at)
  2. Relacione o modelador Todo com o model User (1:N)
  3. Crie uma API REST que represente um CRUD de ToDo
  4. A cada criação de ToDo uma fila deve ser disparada para enviar um webhook (POST) para: https://beeceptor.com/ contendo o "payload" do ToDo.
  5. Crie testes que valide as funcionalidades da aplicação mocando o webhook
  6. Consuma todos os recursos da API via Postman/Insomnia
2. Livewire
  1. Crie um modelador RequestItem (id, user_id, quantity, created_at, updated_at)
  2. Relacione o modelador RequestItem com o model User (N:1)
  3. Através de um componente Livewire, crie um botão na página inicial da /dashboard
  4. Cada clique no botão deve consumir a API https://baconipsum.com/api/?type=meat-and-filler
  5. Cada clique no botão deve obter o primeiro item do json gerado pela API
    1. O texto gerado deve ser exibido em lista na tela, um após o outro usando foreach (cada clique no botão deve gerar um novo item na lista)
    2. O texto gerado também deve ser armazenado no model RequestItem - relacionado com o usuário autenticado
    3. A contagem total de RequestItem deve ser exibida cada vez que houver o clique no botão
  6. Ao alcançar a quantidade de 10 registros um rate limit (feito de qualquer forma apenas para travar o usuário) deve ser acionado com a seguinte frase exibida na tela: "Você alcançou 10 registros. Deseja resetar?"
  7. Resetar deve ser um botão dentro de um segundo componente Livewire. Ao selecionar "Resetar", tudo deve ser resetado, recomeçando do zero, inclusive o banco de dados.
  8. Ao recarregar a página, tudo deve continuar de onde está, sem perder o progresso.
  9. Crie testes que valide as funcionalidades da aplicação mocando a API
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment