Update readme
This commit is contained in:
parent
2dda61337e
commit
1523bbeba2
2 changed files with 20 additions and 2 deletions
|
@ -29,4 +29,20 @@ Client и Coordinator общаются через два вызова.
|
||||||
|
|
||||||
- Конструкторы клиентов и хендлеров принимают первым параметром `*zap.Logger`. Запишите в лог события
|
- Конструкторы клиентов и хендлеров принимают первым параметром `*zap.Logger`. Запишите в лог события
|
||||||
получения/отправки запроса и все ошибки. Это поможет вам отлаживать интеграционные тесты
|
получения/отправки запроса и все ошибки. Это поможет вам отлаживать интеграционные тесты
|
||||||
в следующей части задания.
|
в следующей части задания.
|
||||||
|
|
||||||
|
- Все методы должны "пробрасывать" контекст.
|
||||||
|
* Контекст на клиенте нужно передать в функцию `http.NewRequestContext`.
|
||||||
|
* Контекст на сервере нужно получить из `r.Context()` и передать в `Service`.
|
||||||
|
|
||||||
|
- Код в этом пакете не должен запускать новые горутины.
|
||||||
|
|
||||||
|
- Ошибку из `Service.StartBuild` нужно посылать клиенту. Если эта ошибка произошла после того,
|
||||||
|
как хендлер начал писать body, то ошибку нужно передавать в потоке json-ов в поле `StatusUpdate.BuildFailed`.
|
||||||
|
|
||||||
|
- Код всех вызовов в этом пакете работает одинаково:
|
||||||
|
1. Пользователь вызывает метод `*Client`.
|
||||||
|
2. Метод делает HTTP запрос к серверу.
|
||||||
|
3. `*Handler` принимает запрос, декодирует его и передает в `*Service`.
|
||||||
|
4. (*) В случае вызова `/build`, сервис пишет обновления в `StatusWriter`, а клиентский код читает эти обновления из `StatusReader`.
|
||||||
|
5. Ответ или ошибка из `*Service` возвращается пользователю.
|
||||||
|
|
|
@ -114,6 +114,7 @@ func TestBuildRunning(t *testing.T) {
|
||||||
|
|
||||||
rsp, r, err := env.client.StartBuild(ctx, req)
|
rsp, r, err := env.client.StartBuild(ctx, req)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
defer r.Close()
|
||||||
|
|
||||||
require.Equal(t, started, rsp)
|
require.Equal(t, started, rsp)
|
||||||
|
|
||||||
|
@ -153,7 +154,8 @@ func TestBuildResultsStreaming(t *testing.T) {
|
||||||
return ctx.Err()
|
return ctx.Err()
|
||||||
})
|
})
|
||||||
|
|
||||||
rsp, _, err := env.client.StartBuild(ctx, req)
|
rsp, r, err := env.client.StartBuild(ctx, req)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
defer r.Close()
|
||||||
require.Equal(t, started, rsp)
|
require.Equal(t, started, rsp)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue