@@ -8,10 +8,13 @@ import (
88 "net/http/httptest"
99 "testing"
1010
11+ "github.com/spf13/viper"
1112 "github.com/stretchr/testify/assert"
1213 "github.com/stretchr/testify/require"
1314
15+ "github.com/InitiatDev/initiat-cli/internal/config"
1416 "github.com/InitiatDev/initiat-cli/internal/routes"
17+ "github.com/InitiatDev/initiat-cli/internal/storage"
1518 "github.com/InitiatDev/initiat-cli/internal/types"
1619)
1720
@@ -361,6 +364,7 @@ func TestGetProjectBySlug_NotFound(t *testing.T) {
361364 }))
362365 defer server .Close ()
363366
367+ setupTestEnvironmentForSignedRequests (t , server .URL )
364368 client := NewWithBaseURL (server .URL )
365369
366370 project , err := client .GetProjectBySlug ("test-org" , "non-existent" )
@@ -417,6 +421,7 @@ func TestCreateProject_Success(t *testing.T) {
417421 }))
418422 defer server .Close ()
419423
424+ setupTestEnvironmentForSignedRequests (t , server .URL )
420425 client := NewWithBaseURL (server .URL )
421426
422427 project , err := client .CreateProject ("test-org" , "My Project" , "my-project" , "Test description" )
@@ -459,6 +464,7 @@ func TestCreateProject_EmptyDescription(t *testing.T) {
459464 }))
460465 defer server .Close ()
461466
467+ setupTestEnvironmentForSignedRequests (t , server .URL )
462468 client := NewWithBaseURL (server .URL )
463469
464470 project , err := client .CreateProject ("test-org" , "My Project" , "my-project" , "" )
@@ -480,10 +486,57 @@ func TestCreateProject_ServerError(t *testing.T) {
480486 }))
481487 defer server .Close ()
482488
489+ setupTestEnvironmentForSignedRequests (t , server .URL )
483490 client := NewWithBaseURL (server .URL )
484491
485492 project , err := client .CreateProject ("test-org" , "My Project" , "my-project" , "" )
486493 assert .Error (t , err )
487494 assert .Nil (t , project )
488495 assert .Contains (t , err .Error (), "Project slug already exists" )
489496}
497+
498+ func setupTestEnvironmentForSignedRequests (t * testing.T , serverURL string ) {
499+ viper .Reset ()
500+
501+ if err := config .InitConfig (); err != nil {
502+ t .Fatalf ("Failed to init config: %v" , err )
503+ }
504+
505+ if err := config .Set ("api.base_url" , serverURL ); err != nil {
506+ t .Fatalf ("Failed to set API URL: %v" , err )
507+ }
508+
509+ if err := config .Set ("service_name" , "initiat-cli-test-" + t .Name ()); err != nil {
510+ t .Fatalf ("Failed to set service name: %v" , err )
511+ }
512+
513+ store := storage .New ()
514+
515+ signingPublic , signingPrivate , err := ed25519 .GenerateKey (rand .Reader )
516+ if err != nil {
517+ t .Fatalf ("Failed to generate signing keypair: %v" , err )
518+ }
519+
520+ if err := store .StoreSigningPrivateKey (signingPrivate ); err != nil {
521+ t .Fatalf ("Failed to store signing private key: %v" , err )
522+ }
523+
524+ encryptionPrivate := make ([]byte , 32 )
525+ rand .Read (encryptionPrivate )
526+ if err := store .StoreEncryptionPrivateKey (encryptionPrivate ); err != nil {
527+ t .Fatalf ("Failed to store encryption private key: %v" , err )
528+ }
529+
530+ if err := store .StoreDeviceID ("test-device-123" ); err != nil {
531+ t .Fatalf ("Failed to store device ID: %v" , err )
532+ }
533+
534+ t .Cleanup (func () {
535+ store .DeleteSigningPrivateKey ()
536+ store .DeleteEncryptionPrivateKey ()
537+ store .DeleteDeviceID ()
538+ store .DeleteToken ()
539+ })
540+
541+ _ = signingPublic
542+ }
0 commit comments