Skip to content

Commit 289a9ae

Browse files
utam0kroboquat
authored andcommitted
test: Update example test
1 parent 2faf03a commit 289a9ae

File tree

1 file changed

+68
-51
lines changed

1 file changed

+68
-51
lines changed

test/tests/workspace/example_test.go

+68-51
Original file line numberDiff line numberDiff line change
@@ -21,56 +21,73 @@ func TestWorkspaceInstrumentation(t *testing.T) {
2121
userToken, _ := os.LookupEnv("USER_TOKEN")
2222
integration.SkipWithoutUsername(t, username)
2323
integration.SkipWithoutUserToken(t, userToken)
24+
tests := []struct {
25+
Name string
26+
ContextURL string
27+
WorkspaceRoot string
28+
}{
29+
{
30+
31+
Name: "example",
32+
ContextURL: "https://github.com/gitpod-io/empty",
33+
WorkspaceRoot: "/workspace/empty",
34+
},
35+
}
2436

2537
f := features.New("instrumentation").
2638
WithLabel("component", "server").
27-
Assess("it can instrument a workspace", func(_ context.Context, t *testing.T, cfg *envconf.Config) context.Context {
28-
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)
29-
defer cancel()
30-
31-
api := integration.NewComponentAPI(ctx, cfg.Namespace(), kubeconfig, cfg.Client())
32-
t.Cleanup(func() {
33-
api.Done(t)
34-
})
35-
36-
_, err := api.CreateUser(username, userToken)
37-
if err != nil {
38-
t.Fatal(err)
39-
}
40-
41-
nfo, stopWs, err := integration.LaunchWorkspaceFromContextURL(t, ctx, "github.com/gitpod-io/gitpod", username, api)
42-
if err != nil {
43-
t.Fatal(err)
44-
}
45-
t.Cleanup(func() {
46-
sctx, scancel := context.WithTimeout(context.Background(), 5*time.Minute)
47-
defer scancel()
48-
49-
sapi := integration.NewComponentAPI(sctx, cfg.Namespace(), kubeconfig, cfg.Client())
50-
defer sapi.Done(t)
51-
52-
_, err = stopWs(true, sapi)
53-
if err != nil {
54-
t.Errorf("cannot stop workspace: %q", err)
55-
}
56-
})
57-
58-
rsa, closer, err := integration.Instrument(integration.ComponentWorkspace, "workspace", cfg.Namespace(), kubeconfig, cfg.Client(), integration.WithInstanceID(nfo.LatestInstance.ID))
59-
if err != nil {
60-
t.Fatal(err)
61-
}
62-
defer rsa.Close()
63-
integration.DeferCloser(t, closer)
64-
65-
var ls agent.ListDirResponse
66-
err = rsa.Call("WorkspaceAgent.ListDir", &agent.ListDirRequest{
67-
Dir: "/workspace/gitpod",
68-
}, &ls)
69-
if err != nil {
70-
t.Fatal(err)
71-
}
72-
for _, f := range ls.Files {
73-
t.Log(f)
39+
Assess("it can instrument a workspace", func(ctx context.Context, t *testing.T, cfg *envconf.Config) context.Context {
40+
for _, test := range tests {
41+
t.Run(test.ContextURL, func(t *testing.T) {
42+
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute)
43+
defer cancel()
44+
45+
api := integration.NewComponentAPI(ctx, cfg.Namespace(), kubeconfig, cfg.Client())
46+
t.Cleanup(func() {
47+
api.Done(t)
48+
})
49+
50+
_, err := api.CreateUser(username, userToken)
51+
if err != nil {
52+
t.Fatal(err)
53+
}
54+
55+
nfo, stopWs, err := integration.LaunchWorkspaceFromContextURL(t, ctx, test.ContextURL, username, api)
56+
if err != nil {
57+
t.Fatal(err)
58+
}
59+
60+
defer func() {
61+
sctx, scancel := context.WithTimeout(context.Background(), 5*time.Minute)
62+
defer scancel()
63+
64+
sapi := integration.NewComponentAPI(sctx, cfg.Namespace(), kubeconfig, cfg.Client())
65+
defer sapi.Done(t)
66+
67+
_, err := stopWs(true, sapi)
68+
if err != nil {
69+
t.Fatal(err)
70+
}
71+
}()
72+
73+
rsa, closer, err := integration.Instrument(integration.ComponentWorkspace, "workspace", cfg.Namespace(), kubeconfig, cfg.Client(), integration.WithInstanceID(nfo.LatestInstance.ID))
74+
if err != nil {
75+
t.Fatal(err)
76+
}
77+
defer rsa.Close()
78+
integration.DeferCloser(t, closer)
79+
80+
var ls agent.ListDirResponse
81+
err = rsa.Call("WorkspaceAgent.ListDir", &agent.ListDirRequest{
82+
Dir: test.WorkspaceRoot,
83+
}, &ls)
84+
if err != nil {
85+
t.Fatal(err)
86+
}
87+
for _, f := range ls.Files {
88+
t.Log(f)
89+
}
90+
})
7491
}
7592

7693
return ctx
@@ -97,18 +114,18 @@ func TestLaunchWorkspaceDirectly(t *testing.T) {
97114
t.Fatal(err)
98115
}
99116

100-
t.Cleanup(func() {
117+
defer func() {
101118
sctx, scancel := context.WithTimeout(context.Background(), 5*time.Minute)
102119
defer scancel()
103120

104121
sapi := integration.NewComponentAPI(sctx, cfg.Namespace(), kubeconfig, cfg.Client())
105122
defer sapi.Done(t)
106123

107-
_, err = stopWs(true, sapi)
124+
_, err := stopWs(true, sapi)
108125
if err != nil {
109-
t.Errorf("cannot stop workspace: %q", err)
126+
t.Fatal(err)
110127
}
111-
})
128+
}()
112129

113130
return ctx
114131
}).

0 commit comments

Comments
 (0)