TEST: `ConnectAndGetToken` Returns Error on Non-200 Response
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 84/100
Direção de pesquisa
Comece em keycloak_client.go, em ConnectAndGetToken, e depois use um httptest.Server que retorne 401 com o corpo JSON documentado. Verifique se o erro retornado não é nil, inclui o status 401 e tem a classificação KindAPI. Está concluído quando o teste cobre de forma confiável o caminho de resposta não-200 e todo o pacote cliente do Keycloak tem este caso crítico protegido.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Reason/Context
Description
keycloak_client.go ConnectAndGetToken has no tests at all. The entire
Keycloak client package is untested. The most critical path to test is when
Keycloak returns a non-200 status (wrong credentials, realm not found, server
error) — the function should return a KindAPI error with the HTTP status code
and body. Currently nothing verifies this.
Why Necessary
Wrong credentials is the single most common failure a new user encounters. If
this error path regresses — e.g. the function panics, returns a nil error, or
swallows the body — users get no feedback and assume the server is down.
What If Not Present
A change to the response-parsing code (e.g. switching JSON library, restructuring
the token response) could silently break authentication for all users and no test
would catch it before release.
Diagram
sequenceDiagram
participant T as Test
participant KC as keycloakClient
participant TS as httptest.Server
T->>TS: register handler → always return 401 {"error":"unauthorized"}
T->>KC: NewKeycloakClient(server.URL, "id", "secret")
T->>KC: ConnectAndGetToken()
KC->>TS: POST /protocol/openid-connect/token
TS-->>KC: 401 {"error":"unauthorized"}
KC-->>T: error (KindAPI)
T->>T: assert error != nil
T->>T: assert error contains "401"
T->>T: assert KindOf(err) == KindAPI
Description
N/A
Implementation ideas
No response
- Linguagem predominante
- Go
- Estrelas
- 57
- Forks
- 72
- Merge médio
- 3d 23h
- PRs com merge (30d)
- 23
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de microcks/microcks-cli
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
microcks/microcks-cli#559 · 1 comentário · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
microcks/microcks-cli#551 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
microcks/microcks-cli#545 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
microcks/microcks-cli#536 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
component/cli keep-open kind/bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
microcks/microcks-cli#534 · 4 comentários · 1 reação ·
Mantenedores costumam responder em até 1 dia
Todas as issues de microcks/microcks-cli
Issues semelhantes
-
bug docs
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
bug needs-acceptance wg/evaluation-quality
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
vllm-project/semantic-router#4424 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 90/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
NVIDIA/k8s-device-plugin#2076 ·
Mantenedores costumam responder em até 1 dia
-
Documentation help wanted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
golang/go#81933 · 2 comentários ·
Mantenedores costumam responder em até 1 dia