@@ -2,153 +2,103 @@ use canister_tests::api::internet_identity as api;
22use canister_tests:: framework:: {
33 env, install_ii_canister_with_arg, upgrade_ii_canister_with_arg, II_WASM ,
44} ;
5- use internet_identity_interface:: internet_identity:: types:: InternetIdentityInit ;
5+ use internet_identity_interface:: internet_identity:: types:: {
6+ InternetIdentityInit , RateLimitConfig ,
7+ } ;
68
79#[ test]
810fn should_init_default ( ) {
911 let env = env ( ) ;
1012
1113 let canister_id = install_ii_canister_with_arg ( & env, II_WASM . clone ( ) , None ) ;
1214 assert_eq ! (
13- api:: config( & env, canister_id) . unwrap( ) . related_origins,
14- None
15+ api:: config( & env, canister_id) . unwrap( ) . register_rate_limit,
16+ Some ( RateLimitConfig {
17+ time_per_token_ns: 10_000_000_000 ,
18+ max_tokens: 20_000 ,
19+ } )
1520 ) ;
1621}
1722
1823#[ test]
1924fn should_init_config ( ) {
2025 let env = env ( ) ;
21- let configs = vec ! [
22- InternetIdentityInit {
23- related_origins: None ,
24- ..Default :: default ( )
25- } ,
26- InternetIdentityInit {
27- related_origins: Some ( vec![ ] ) ,
28- ..Default :: default ( )
29- } ,
30- InternetIdentityInit {
31- related_origins: Some ( vec![ "https://example.com" . into( ) ] ) ,
32- ..Default :: default ( )
33- } ,
34- InternetIdentityInit {
35- related_origins: Some ( vec![
36- "https://example1.com" . into( ) ,
37- "https://example2.com" . into( ) ,
38- ] ) ,
39- ..Default :: default ( )
40- } ,
41- ] ;
42-
43- for config in configs {
44- let canister_id = install_ii_canister_with_arg ( & env, II_WASM . clone ( ) , Some ( config. clone ( ) ) ) ;
45- assert_eq ! (
46- api:: config( & env, canister_id) . unwrap( ) . related_origins,
47- config. related_origins
48- ) ;
49- }
50- }
51-
52- #[ test]
53- fn should_enable_config ( ) {
54- let env = env ( ) ;
55- let mut config = InternetIdentityInit {
56- related_origins : None ,
26+ let config = InternetIdentityInit {
27+ register_rate_limit : Some ( RateLimitConfig {
28+ time_per_token_ns : 1_000_000_000 ,
29+ max_tokens : 100 ,
30+ } ) ,
5731 ..Default :: default ( )
5832 } ;
59- let enabled_value = Some ( vec ! [ "https://example.com" . into( ) ] ) ;
60-
6133 let canister_id = install_ii_canister_with_arg ( & env, II_WASM . clone ( ) , Some ( config. clone ( ) ) ) ;
62- config. related_origins = enabled_value. clone ( ) ;
63- upgrade_ii_canister_with_arg ( & env, canister_id, II_WASM . clone ( ) , Some ( config. clone ( ) ) ) . unwrap ( ) ;
6434 assert_eq ! (
65- api:: config( & env, canister_id) . unwrap( ) . related_origins ,
66- enabled_value
35+ api:: config( & env, canister_id) . unwrap( ) . register_rate_limit ,
36+ config . register_rate_limit
6737 ) ;
6838}
6939
7040#[ test]
71- fn should_disable_config ( ) {
72- let env = env ( ) ;
73- let mut config = InternetIdentityInit {
74- related_origins : Some ( vec ! [ "https://example.com" . into( ) ] ) ,
75- ..Default :: default ( )
76- } ;
77- let disabled_value = Some ( vec ! [ ] ) ;
41+ fn should_enable_config ( ) {
42+ // Register rate limit config cannot be enabled,
43+ // this test is here to explicitly mention this.
44+ }
7845
79- let canister_id = install_ii_canister_with_arg ( & env, II_WASM . clone ( ) , Some ( config. clone ( ) ) ) ;
80- config. related_origins = disabled_value. clone ( ) ;
81- upgrade_ii_canister_with_arg ( & env, canister_id, II_WASM . clone ( ) , Some ( config. clone ( ) ) ) . unwrap ( ) ;
82- assert_eq ! (
83- api:: config( & env, canister_id) . unwrap( ) . related_origins,
84- disabled_value
85- ) ;
46+ #[ test]
47+ fn should_disable_config ( ) {
48+ // Register rate limit config cannot be disabled,
49+ // this test is here to explicitly mention this.
8650}
8751
8852#[ test]
8953fn should_update_config ( ) {
9054 let env = env ( ) ;
9155 let mut config = InternetIdentityInit {
92- related_origins : Some ( vec ! [ "https://example.com" . into( ) ] ) ,
56+ register_rate_limit : Some ( RateLimitConfig {
57+ time_per_token_ns : 1_000_000_000 ,
58+ max_tokens : 100 ,
59+ } ) ,
9360 ..Default :: default ( )
9461 } ;
95- let updated_value = Some ( vec ! [
96- "https://example1.com" . into ( ) ,
97- "https://example2.com" . into ( ) ,
98- ] ) ;
62+ let updated_value = Some ( RateLimitConfig {
63+ time_per_token_ns : 2_000_000_000 ,
64+ max_tokens : 200 ,
65+ } ) ;
9966
10067 let canister_id = install_ii_canister_with_arg ( & env, II_WASM . clone ( ) , Some ( config. clone ( ) ) ) ;
101- config. related_origins = updated_value. clone ( ) ;
68+ config. register_rate_limit = updated_value. clone ( ) ;
10269 upgrade_ii_canister_with_arg ( & env, canister_id, II_WASM . clone ( ) , Some ( config. clone ( ) ) ) . unwrap ( ) ;
10370 assert_eq ! (
104- api:: config( & env, canister_id) . unwrap( ) . related_origins ,
71+ api:: config( & env, canister_id) . unwrap( ) . register_rate_limit ,
10572 updated_value
10673 ) ;
10774}
10875
10976#[ test]
11077fn should_retain_config ( ) {
11178 let env = env ( ) ;
112- let configs = vec ! [
113- InternetIdentityInit {
114- related_origins: None ,
115- ..Default :: default ( )
116- } ,
117- InternetIdentityInit {
118- related_origins: Some ( vec![ ] ) ,
119- ..Default :: default ( )
120- } ,
121- InternetIdentityInit {
79+ let config = InternetIdentityInit {
80+ register_rate_limit : Some ( RateLimitConfig {
81+ time_per_token_ns : 1_000_000_000 ,
82+ max_tokens : 100 ,
83+ } ) ,
84+ ..Default :: default ( )
85+ } ;
86+ let canister_id = install_ii_canister_with_arg ( & env, II_WASM . clone ( ) , Some ( config. clone ( ) ) ) ;
87+ // No config argument
88+ upgrade_ii_canister_with_arg ( & env, canister_id, II_WASM . clone ( ) , None ) . unwrap ( ) ;
89+ // Unrelated config change
90+ upgrade_ii_canister_with_arg (
91+ & env,
92+ canister_id,
93+ II_WASM . clone ( ) ,
94+ Some ( InternetIdentityInit {
12295 related_origins : Some ( vec ! [ "https://example.com" . into( ) ] ) ,
12396 ..Default :: default ( )
124- } ,
125- InternetIdentityInit {
126- related_origins: Some ( vec![
127- "https://example1.com" . into( ) ,
128- "https://example2.com" . into( ) ,
129- ] ) ,
130- ..Default :: default ( )
131- } ,
132- ] ;
133-
134- for config in configs {
135- let canister_id = install_ii_canister_with_arg ( & env, II_WASM . clone ( ) , Some ( config. clone ( ) ) ) ;
136- // No config argument
137- upgrade_ii_canister_with_arg ( & env, canister_id, II_WASM . clone ( ) , None ) . unwrap ( ) ;
138- // Unrelated config change
139- upgrade_ii_canister_with_arg (
140- & env,
141- canister_id,
142- II_WASM . clone ( ) ,
143- Some ( InternetIdentityInit {
144- related_origins : Some ( vec ! [ "https://example.com" . into( ) ] ) ,
145- ..Default :: default ( )
146- } ) ,
147- )
148- . unwrap ( ) ;
149- assert_eq ! (
150- api:: config( & env, canister_id) . unwrap( ) . related_origins,
151- config. related_origins
152- ) ;
153- }
97+ } ) ,
98+ )
99+ . unwrap ( ) ;
100+ assert_eq ! (
101+ api:: config( & env, canister_id) . unwrap( ) . register_rate_limit,
102+ config. register_rate_limit
103+ ) ;
154104}
0 commit comments