@@ -3,7 +3,6 @@ import { User } from "./User";
33import { Timer } from "./utils" ;
44
55describe ( "User" , ( ) => {
6-
76 let now : number ;
87
98 beforeEach ( ( ) => {
@@ -46,4 +45,59 @@ describe("User", () => {
4645 expect ( subject . scopes ) . toEqual ( [ "foo" , "bar" , "baz" ] ) ;
4746 } ) ;
4847 } ) ;
48+
49+ describe ( "extraTokenResponseProperties" , ( ) => {
50+ it ( "should not provide extraTokenResponseProperties if extraTokenResponseKeys is not provided" , ( ) => {
51+ // arrange
52+ const args = {
53+ access_token : "notAToken" ,
54+ id_token : "not" ,
55+ patient : "12345" , // extra
56+ token_type : "Bearer" ,
57+ extra1 : 0 , // extra
58+ extra2 : null ,
59+ extra3 : true ,
60+ } ;
61+
62+ // act
63+ const subject = new User ( args as never ) ;
64+
65+ // assert
66+ expect ( subject . extraTokenResponseProperties ) . not . toBeDefined ( ) ;
67+ } ) ;
68+ it ( "should provide extraTokenResponseProperties if extraTokenResponseKeys is provided" , ( ) => {
69+ // arrange
70+ const args = {
71+ access_token : "access_token" ,
72+ id_token : "id_token" ,
73+ patient : "12345" , // extra
74+ token_type : "Bearer" ,
75+ extra1 : 0 , // extra
76+ extra2 : null ,
77+ extra3 : true , // extra but not specified
78+ } ;
79+
80+ // act
81+ const subject = new User ( args as never , [
82+ "patient" ,
83+ "extra1" ,
84+ "extra2" ,
85+ ] ) ;
86+
87+ // assert
88+ expect ( subject . extraTokenResponseProperties ) . toBeDefined ( ) ;
89+ const actualTokenProps = subject . extraTokenResponseProperties ?? { } ;
90+ const patient = actualTokenProps [ "patient" ] ;
91+ expect ( patient ) . toBeDefined ( ) ;
92+ expect ( patient ) . toEqual ( args . patient ) ;
93+ const extra1 = actualTokenProps [ "extra1" ] ;
94+ expect ( extra1 ) . toBeDefined ( ) ;
95+ expect ( extra1 ) . toEqual ( args . extra1 ) ;
96+ const extra2 = actualTokenProps [ "extra2" ] ;
97+ expect ( extra2 ) . toBeDefined ( ) ;
98+ expect ( extra2 ) . toEqual ( args . extra2 ) ;
99+ const extra3 = actualTokenProps [ "extra3" ] ;
100+ expect ( extra3 ) . not . toBeDefined ( ) ;
101+ } ) ;
102+ } ) ;
49103} ) ;
0 commit comments