@@ -49,7 +49,7 @@ func TestSubmitQuery(t *testing.T) {
4949 t .Run ("Success" , func (t * testing.T ) {
5050 req := QueryRequest {Query : QueryObject {Prompt : "hello" }}
5151 var resp VerseResponse
52- err := SubmitQuery (req , & resp )
52+ err := SubmitQuery (req , & resp , "" )
5353 if err != nil {
5454 t .Errorf ("Unexpected error: %v" , err )
5555 }
@@ -62,7 +62,7 @@ func TestSubmitQuery(t *testing.T) {
6262 t .Run ("API Error" , func (t * testing.T ) {
6363 req := QueryRequest {Query : QueryObject {Prompt : "error" }}
6464 var resp VerseResponse
65- err := SubmitQuery (req , & resp )
65+ err := SubmitQuery (req , & resp , "" )
6666 if err == nil {
6767 t .Error ("Expected error, got nil" )
6868 }
@@ -76,7 +76,7 @@ func TestSubmitQuery(t *testing.T) {
7676 t .Run ("Bad JSON" , func (t * testing.T ) {
7777 req := QueryRequest {Query : QueryObject {Prompt : "badjson" }}
7878 var resp VerseResponse
79- err := SubmitQuery (req , & resp )
79+ err := SubmitQuery (req , & resp , "" )
8080 if err == nil {
8181 t .Error ("Expected error for bad JSON, got nil" )
8282 }
@@ -89,10 +89,11 @@ func TestSubmitQuery(t *testing.T) {
8989 defer restore ()
9090 // Also unset PROJECT_ID to avoid Secret Manager lookup
9191 defer setEnv ("GCLOUD_PROJECT_ID" , "" )()
92+ resetAPIConfigCache ()
9293
9394 req := QueryRequest {}
9495 var resp VerseResponse
95- err := SubmitQuery (req , & resp )
96+ err := SubmitQuery (req , & resp , "" )
9697 if err == nil {
9798 t .Error ("Expected error when BIBLE_API_URL is unset" )
9899 }
@@ -104,6 +105,7 @@ func TestGetAPIConfig_SecretManagerFallback(t *testing.T) {
104105 defer setEnv ("BIBLE_API_URL" , "" )()
105106 defer setEnv ("BIBLE_API_KEY" , "" )()
106107 defer setEnv ("GCLOUD_PROJECT_ID" , "test-project" )()
108+ resetAPIConfigCache ()
107109
108110 // Mock the secret function
109111 oldGetSecret := getSecretFunc
@@ -122,7 +124,7 @@ func TestGetAPIConfig_SecretManagerFallback(t *testing.T) {
122124 return "" , fmt .Errorf ("unexpected secret: %s" , name )
123125 }
124126
125- url , key := getAPIConfig ()
127+ url , key := getAPIConfig ("" )
126128
127129 if url != "http://secret-url.com" {
128130 t .Errorf ("Expected URL 'http://secret-url.com', got '%s'" , url )
@@ -131,3 +133,31 @@ func TestGetAPIConfig_SecretManagerFallback(t *testing.T) {
131133 t .Errorf ("Expected Key 'secret-key', got '%s'" , key )
132134 }
133135}
136+
137+ func TestGetAPIConfig_PassedProjectID (t * testing.T ) {
138+ // Ensure Env Vars are empty, including GCLOUD_PROJECT_ID
139+ defer setEnv ("BIBLE_API_URL" , "" )()
140+ defer setEnv ("BIBLE_API_KEY" , "" )()
141+ defer setEnv ("GCLOUD_PROJECT_ID" , "" )()
142+ resetAPIConfigCache ()
143+
144+ // Mock the secret function
145+ oldGetSecret := getSecretFunc
146+ defer func () { getSecretFunc = oldGetSecret }()
147+
148+ getSecretFunc = func (project , name string ) (string , error ) {
149+ if project != "passed-project" {
150+ return "" , fmt .Errorf ("unexpected project: %s" , project )
151+ }
152+ if name == "BIBLE_API_URL" {
153+ return "http://secret-url-passed.com" , nil
154+ }
155+ return "" , fmt .Errorf ("unexpected secret: %s" , name )
156+ }
157+
158+ url , _ := getAPIConfig ("passed-project" )
159+
160+ if url != "http://secret-url-passed.com" {
161+ t .Errorf ("Expected URL 'http://secret-url-passed.com', got '%s'" , url )
162+ }
163+ }
0 commit comments