@@ -2,6 +2,7 @@ use cookie::{Cookie, CookieJar};
22use http:: header;
33
44use crate :: http_wrapper:: RequestWrapper ;
5+ use crate :: settings:: Settings ;
56
67const COOKIE_MAX_AGE : i32 = 365 * 24 * 60 * 60 ; // 1 year
78
@@ -32,10 +33,10 @@ pub fn handle_request_cookies<T: RequestWrapper>(req: &T) -> Option<CookieJar> {
3233 }
3334}
3435
35- pub fn create_synthetic_cookie ( synthetic_id : & str ) -> String {
36+ pub fn create_synthetic_cookie ( synthetic_id : & str , settings : & Settings ) -> String {
3637 format ! (
37- "synthetic_id={}; Domain=.auburndao.com ; Path=/; Secure; SameSite=Lax; Max-Age={}" ,
38- synthetic_id, COOKIE_MAX_AGE ,
38+ "synthetic_id={}; Domain={} ; Path=/; Secure; SameSite=Lax; Max-Age={}" ,
39+ synthetic_id, settings . server . cookie_domain , COOKIE_MAX_AGE ,
3940 )
4041}
4142
@@ -132,10 +133,40 @@ mod tests {
132133
133134 #[ test]
134135 fn test_create_synthetic_cookie ( ) {
135- let result = create_synthetic_cookie ( "12345" ) ;
136+ // Create a test settings
137+ let settings_toml = r#"
138+ [server]
139+ domain = "example.com"
140+ cookie_domain = ".example.com"
141+
142+ [ad_server]
143+ ad_partner_url = "test"
144+ sync_url = "test"
145+
146+ [prebid]
147+ server_url = "test"
148+
149+ [synthetic]
150+ counter_store = "test"
151+ opid_store = "test"
152+ secret_key = "test-key"
153+ template = "test"
154+ "# ;
155+
156+ let settings: Settings = config:: Config :: builder ( )
157+ . add_source ( config:: File :: from_str (
158+ settings_toml,
159+ config:: FileFormat :: Toml ,
160+ ) )
161+ . build ( )
162+ . unwrap ( )
163+ . try_deserialize ( )
164+ . unwrap ( ) ;
165+
166+ let result = create_synthetic_cookie ( "12345" , & settings) ;
136167 assert_eq ! (
137168 result,
138- "synthetic_id=12345; Domain=.auburndao .com; Path=/; Secure; SameSite=Lax; Max-Age=31536000"
169+ "synthetic_id=12345; Domain=.example .com; Path=/; Secure; SameSite=Lax; Max-Age=31536000"
139170 ) ;
140171 }
141172}
0 commit comments