Skip to content

Commit dab63a3

Browse files
committed
Fix interface compliance issues in jail_test.go
- Update mockRuleEngine to implement rules.Evaluator with Evaluate method - Update mockTLSManager to implement tls.Manager with SetupTLSAndWriteCACert method - Fix imports: add crypto/tls, fmt and namespace packages - Fix TestNewNamespaceCommander to use proper namespace.Config and constructors
1 parent 4167d2b commit dab63a3

File tree

1 file changed

+34
-30
lines changed

1 file changed

+34
-30
lines changed

jail_test.go

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package jail
22

33
import (
44
"context"
5+
"crypto/tls"
6+
"fmt"
57
"log/slog"
68
"os"
79
"runtime"
@@ -10,24 +12,20 @@ import (
1012
"time"
1113

1214
"github.com/coder/jail/audit"
15+
"github.com/coder/jail/namespace"
1316
"github.com/coder/jail/rules"
14-
"github.com/coder/jail/tls"
1517
)
1618

1719
// Mock implementations for testing
1820
type mockRuleEngine struct {
1921
allowAll bool
2022
}
2123

22-
func (m *mockRuleEngine) IsAllowed(method, url string) bool {
23-
return m.allowAll
24-
}
25-
26-
func (m *mockRuleEngine) GetMatchingRule(method, url string) string {
24+
func (m *mockRuleEngine) Evaluate(method, url string) rules.Result {
2725
if m.allowAll {
28-
return "allow *"
26+
return rules.Result{Allowed: true, Rule: "allow *"}
2927
}
30-
return ""
28+
return rules.Result{Allowed: false, Rule: ""}
3129
}
3230

3331
type mockAuditor struct {
@@ -42,25 +40,11 @@ type mockTLSManager struct {
4240
returnError bool
4341
}
4442

45-
func (m *mockTLSManager) SetupTLS() error {
46-
if m.returnError {
47-
return os.ErrPermission
48-
}
49-
return nil
50-
}
51-
52-
func (m *mockTLSManager) GetTLSConfig() (*tls.Config, error) {
43+
func (m *mockTLSManager) SetupTLSAndWriteCACert() (*tls.Config, string, string, error) {
5344
if m.returnError {
54-
return nil, os.ErrPermission
45+
return nil, "", "", os.ErrPermission
5546
}
56-
return &tls.Config{}, nil
57-
}
58-
59-
func (m *mockTLSManager) GetCACertPEM() ([]byte, error) {
60-
if m.returnError {
61-
return nil, os.ErrPermission
62-
}
63-
return []byte("fake-ca-cert"), nil
47+
return &tls.Config{}, "/tmp/cert.pem", "/tmp/key.pem", nil
6448
}
6549

6650
// Helper function to check if we can create namespaces
@@ -305,12 +289,32 @@ func TestNewNamespaceCommander(t *testing.T) {
305289
}
306290

307291
// Test the current platform's implementation
308-
commander, err := NewNamespaceCommander(UserInfo{
309-
Username: "testuser",
310-
UID: 1000,
311-
GID: 1000,
312-
}, slog.New(slog.NewTextHandler(os.Stdout, nil)))
292+
config := namespace.Config{
293+
Logger: slog.New(slog.NewTextHandler(os.Stdout, nil)),
294+
HttpProxyPort: 8080,
295+
HttpsProxyPort: 8443,
296+
UserInfo: namespace.UserInfo{
297+
Username: "testuser",
298+
Uid: 1000,
299+
Gid: 1000,
300+
HomeDir: "/home/testuser",
301+
ConfigDir: "/home/testuser/.config",
302+
},
303+
Env: map[string]string{},
304+
}
313305

306+
var commander namespace.Commander
307+
var err error
308+
309+
switch runtime.GOOS {
310+
case "linux":
311+
commander, err = namespace.NewLinux(config)
312+
case "darwin":
313+
commander, err = namespace.NewMacOS(config)
314+
default:
315+
err = fmt.Errorf("unsupported platform: %s", runtime.GOOS)
316+
}
317+
314318
if tt.goos == runtime.GOOS {
315319
// Should work on current platform
316320
if err != nil {

0 commit comments

Comments
 (0)