|
1 | 1 | import { constructScopes, getIsTabValue, mergeConfigs, generateConfigs } from '../helper'; |
2 | 2 | import packageJson from '../../package.json'; |
3 | 3 | import { ConfigsOptions } from '../typings'; |
| 4 | +import { stringify } from 'qs'; |
4 | 5 |
|
5 | 6 | describe('helper', () => { |
6 | 7 | test('constuctScopes', () => { |
@@ -123,26 +124,37 @@ describe('helper', () => { |
123 | 124 | authAction: 'signup', |
124 | 125 | showAuthToggle: true, |
125 | 126 | showRememberMe: true, |
126 | | - authnMethod: 'sso', |
127 | | - } |
| 127 | + authnMethod: 'sso' |
| 128 | + }; |
128 | 129 |
|
129 | | - expect( |
130 | | - generateConfigs(configPayload) |
131 | | - ).toBe( |
| 130 | + expect(generateConfigs(configPayload)).toBe( |
132 | 131 | `sdk_platform=js&sdk_version=${packageJson.version}&email=email&back_to=backTo&auth_action=signup&show_auth_toggle=true` + |
133 | 132 | `&show_remember_me=true&authn_method=sso` |
134 | 133 | ); |
135 | 134 | }); |
136 | 135 |
|
137 | 136 | test('with authnMethod parameter as an array', () => { |
138 | 137 | const configPayload: ConfigsOptions = { |
139 | | - authnMethod: ['sso', 'passwordless'], |
140 | | - } |
| 138 | + authnMethod: ['sso', 'passwordless'] |
| 139 | + }; |
141 | 140 |
|
142 | | - expect( |
143 | | - generateConfigs(configPayload) |
144 | | - ).toBe( |
145 | | - `sdk_platform=js&sdk_version=${packageJson.version}&authn_method[]=sso&authn_method[]=passwordless` |
| 141 | + expect(generateConfigs(configPayload)).toBe( |
| 142 | + `sdk_platform=js&sdk_version=${packageJson.version}&authn_method%5B%5D=sso&authn_method%5B%5D=passwordless` |
| 143 | + ); |
| 144 | + }); |
| 145 | + |
| 146 | + test('query encoding should make sure config params are also encoded', () => { |
| 147 | + const configPayload: ConfigsOptions = { |
| 148 | + email: 'email&!@#(*)-304should be_encoded', |
| 149 | + backTo: 'backTo #!@with []special= chars', |
| 150 | + authAction: 'signup', |
| 151 | + showAuthToggle: true, |
| 152 | + showRememberMe: true, |
| 153 | + authnMethod: ['sso', 'passwordless'] |
| 154 | + }; |
| 155 | + |
| 156 | + expect(generateConfigs(configPayload)).toBe( |
| 157 | + `sdk_platform=js&sdk_version=${packageJson.version}&email=email%26%21%40%23%28%2A%29-304should%20be_encoded&back_to=backTo%20%23%21%40with%20%5B%5Dspecial%3D%20chars&auth_action=signup&show_auth_toggle=true&show_remember_me=true&authn_method%5B%5D=sso&authn_method%5B%5D=passwordless` |
146 | 158 | ); |
147 | 159 | }); |
148 | 160 |
|
|
0 commit comments