@@ -31,7 +31,7 @@ use Cwd qw(cwd);
3131
3232repeat_each(2);
3333
34- plan tests => repeat_each() * (blocks() * 8 ) + 2;
34+ plan tests => repeat_each() * (blocks() * 8 ) - 2;
3535
3636my $pwd = cwd();
3737
@@ -53,13 +53,7 @@ our $HttpConfig = <<_EOC_;
5353 lua_shared_dict cachedOauthTokens 50m;
5454 # dict used by User Profile validator to cache valid profiles
5555 lua_shared_dict cachedUserProfiles 50m;
56-
57- upstream api-gateway-redis {
58- server 127.0.0.1:6379;
59- }
60- upstream api-gateway-redis-replica { # Default config for redis health check test
61- server 127.0.0.1:6379;
62- }
56+ include ../../api-gateway/redis-upstream.conf;
6357_EOC_
6458
6559# no_diff();
@@ -237,3 +231,47 @@ X-User-Name: display_name-%E5%B7%A5%EF%BC%8D%E5%A5%B3%EF%BC%8D%E9%95%BF
237231--- error_code: 200
238232--- no_error_log
239233[error]
234+
235+ === TEST 4: test ims_profile with a null field
236+ --- http_config eval: $::HttpConfig
237+ --- config
238+ include ../../api-gateway/api-gateway-cache.conf;
239+ include ../../api-gateway/default_validators.conf;
240+
241+ error_log ../test-logs/userProfileValidator_test4_error.log debug;
242+
243+ location /test-validate-user {
244+ set $service_id s-123;
245+ # get OAuth token either from header or from the user_token query string
246+ set $authtoken $http_authorization;
247+ set_if_empty $authtoken $arg_user_token;
248+ set_by_lua $authtoken 'return ngx.re.gsub(ngx.arg[1], "bearer ", "","ijo") ' $authtoken;
249+
250+ set $validate_user_profile on;
251+
252+ access_by_lua "ngx.apiGateway.validation.validateRequest()";
253+ content_by_lua 'ngx.say("user_email=" .. ngx.var.user_email .. ",user_country_code=" .. ngx.var.user_country_code .. ",user_region=" .. ngx.var.user_region .. ",user_name=" .. ngx.var.user_name)';
254+
255+ add_header X-User-Id $user_email;
256+ add_header X-User-Country-Code $user_country_code;
257+ add_header X-User-Region $user_region;
258+ add_header X-User-Name $user_name;
259+ }
260+
261+ location /validate-user {
262+ internal;
263+ return 200 '{"countryCode":null,"emailVerified":"true","email":"noreply-ăâ@domain.com","userId":"1234","name":"full name","displayName":"display_name-工-女-长"}';
264+ }
265+ --- more_headers
266+ Authorization: Bearer SOME_OAUTH_TOKEN_TEST_FOUR
267+ --- request
268+ GET /test-validate-user
269+ --- response_body_like eval
270+ "^user_email=noreply-ăâ\@domain.com,user_country_code=,user_region=US,user_name=display_name-%E5%B7%A5%EF%BC%8D%E5%A5%B3%EF%BC%8D%E9%95%BF.*"
271+ --- response_headers_like
272+ X-User-Id: noreply-ăâ@domain.com
273+ X-User-Region: US
274+ X-User-Name: display_name-%E5%B7%A5%EF%BC%8D%E5%A5%B3%EF%BC%8D%E9%95%BF
275+ --- error_code: 200
276+ --- no_error_log
277+ [error]
0 commit comments