MCPcopy Create free account
hub / github.com/coder/envbuilder / TestLogs

Function TestLogs

integration/integration_test.go:77–166  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

75var emptyRemoteOpts []remote.Option
76
77func TestLogs(t *testing.T) {
78 t.Parallel()
79
80 token := uuid.NewString()
81 logsDone := make(chan struct{})
82
83 logHandler := func(w http.ResponseWriter, r *http.Request) {
84 switch r.URL.Path {
85 case "/api/v2/buildinfo":
86 w.Header().Set("Content-Type", "application/json")
87 _, _ = w.Write([]byte(`{"version": "v2.8.9"}`))
88 return
89 case "/api/v2/workspaceagents/me/logs":
90 w.WriteHeader(http.StatusOK)
91 tokHdr := r.Header.Get(codersdk.SessionTokenHeader)
92 assert.Equal(t, token, tokHdr)
93 var req agentsdk.PatchLogs
94 err := json.NewDecoder(r.Body).Decode(&req)
95 if err != nil {
96 http.Error(w, err.Error(), http.StatusBadRequest)
97 return
98 }
99 for _, log := range req.Logs {
100 t.Logf("got log: %+v", log)
101 if strings.Contains(log.Output, "Running init command") {
102 close(logsDone)
103 return
104 }
105 }
106 return
107 default:
108 t.Errorf("unexpected request to %s", r.URL.Path)
109 w.WriteHeader(http.StatusNotFound)
110 return
111 }
112 }
113 logSrv := httptest.NewServer(http.HandlerFunc(logHandler))
114 defer logSrv.Close()
115
116 // Ensures that a Git repository with a devcontainer.json is cloned and built.
117 srv := gittest.CreateGitServer(t, gittest.Options{
118 Files: map[string]string{
119 "devcontainer.json": `{
120 "build": {
121 "dockerfile": "Dockerfile"
122 },
123 }`,
124 "Dockerfile": fmt.Sprintf(`FROM %s`, testImageUbuntu),
125 },
126 })
127 ctrID, err := runEnvbuilder(t, runOpts{env: []string{
128 envbuilderEnv("GIT_URL", srv.URL),
129 "CODER_AGENT_URL=" + logSrv.URL,
130 "CODER_AGENT_TOKEN=" + token,
131 "ENVBUILDER_SETUP_SCRIPT=/bin/sh -c 'echo MY${NO_MATCH_ENV}_SETUP_SCRIPT_OUT; echo MY${NO_MATCH_ENV}_SETUP_SCRIPT_ERR' 1>&2",
132 "ENVBUILDER_INIT_SCRIPT=env",
133 }})
134 require.NoError(t, err)

Callers

nothing calls this directly

Calls 6

CreateGitServerFunction · 0.92
runEnvbuilderFunction · 0.85
envbuilderEnvFunction · 0.85
WriteMethod · 0.80
ErrorMethod · 0.80
CloseMethod · 0.80

Tested by

no test coverage detected