@@ -3,6 +3,7 @@ package codespace
33import (
44 "context"
55 "encoding/json"
6+ "errors"
67 "fmt"
78 "testing"
89
@@ -40,7 +41,7 @@ func TestPortsUpdateVisibilitySuccess(t *testing.T) {
4041 },
4142 }
4243
43- err := RunUpdateVisibilityTest ( t , portVisibilities , eventResponses , portsData )
44+ err := runUpdateVisibilityTest ( portVisibilities , eventResponses , portsData )
4445
4546 if err != nil {
4647 t .Errorf ("unexpected error: %v" , err )
@@ -77,14 +78,13 @@ func TestPortsUpdateVisibilityFailure403(t *testing.T) {
7778 },
7879 }
7980
80- err := RunUpdateVisibilityTest ( t , portVisibilities , eventResponses , portsData )
81+ err := runUpdateVisibilityTest ( portVisibilities , eventResponses , portsData )
8182 if err == nil {
8283 t .Errorf ("unexpected error: %v" , err )
8384 }
8485
85- expectedErr := "error waiting for port 9999 to update to public: organization admin has forbidden this privacy setting"
86- if err .Error () != expectedErr {
87- t .Errorf ("expected: %v, got: %v" , expectedErr , err )
86+ if errors .Unwrap (err ) != errUpdatePortVisibilityForbidden {
87+ t .Errorf ("expected: %v, got: %v" , errUpdatePortVisibilityForbidden , errors .Unwrap (err ))
8888 }
8989}
9090
@@ -117,13 +117,13 @@ func TestPortsUpdateVisibilityFailure(t *testing.T) {
117117 },
118118 }
119119
120- err := RunUpdateVisibilityTest ( t , portVisibilities , eventResponses , portsData )
120+ err := runUpdateVisibilityTest ( portVisibilities , eventResponses , portsData )
121121 if err == nil {
122122 t .Errorf ("unexpected error: %v" , err )
123123 }
124124
125- expectedErr := "error waiting for port 9999 to update to public: test error"
126- if err . Error () != expectedErr {
125+ var expectedErr * ErrUpdatingPortVisibility
126+ if ! errors . As ( err , & expectedErr ) {
127127 t .Errorf ("expected: %v, got: %v" , expectedErr , err )
128128 }
129129}
@@ -132,7 +132,7 @@ type joinWorkspaceResult struct {
132132 SessionNumber int `json:"sessionNumber"`
133133}
134134
135- func RunUpdateVisibilityTest ( t * testing. T , portVisibilities []portVisibility , eventResponses []string , portsData []portData ) error {
135+ func runUpdateVisibilityTest ( portVisibilities []portVisibility , eventResponses []string , portsData []portData ) error {
136136 joinWorkspace := func (req * jsonrpc2.Request ) (interface {}, error ) {
137137 return joinWorkspaceResult {1 }, nil
138138 }
@@ -158,29 +158,33 @@ func RunUpdateVisibilityTest(t *testing.T, portVisibilities []portVisibility, ev
158158 livesharetest .WithService ("serverSharing.updateSharedServerPrivacy" , updateSharedVisibility ),
159159 )
160160 if err != nil {
161- t . Fatal ( err )
161+ return fmt . Errorf ( "unable to create test server: %w" , err )
162162 }
163163
164164 type rpcMessage struct {
165165 Method string
166166 Params portData
167167 }
168168
169- for index , pd := range portsData {
170- go func (index int , pd portData ) {
171- for {
172- select {
173- case <- ctx .Done ():
174- return
175- case <- ch :
176- testServer .WriteToObjectStream (rpcMessage {
177- Method : eventResponses [index ],
178- Params : pd ,
179- })
169+ go func () {
170+ var i int
171+ for ; ; i ++ {
172+ select {
173+ case <- ctx .Done ():
174+ return
175+ case <- ch :
176+ pd := portsData [i ]
177+ // TODO: handle error
178+ err := testServer .WriteToObjectStream (rpcMessage {
179+ Method : eventResponses [i ],
180+ Params : pd ,
181+ })
182+ if err != nil {
183+ panic (err )
180184 }
181185 }
182- }( index , pd )
183- }
186+ }
187+ }()
184188
185189 mockApi := & apiClientMock {
186190 GetCodespaceFunc : func (ctx context.Context , codespaceName string , includeConnection bool ) (* api.Codespace , error ) {
0 commit comments