|
| 1 | +import { setDevBrowserJWTInURL } from '../devBrowser'; |
| 2 | + |
| 3 | +const DUMMY_URL_BASE = 'http://clerk-dummy'; |
| 4 | + |
| 5 | +describe('setDevBrowserJWTInURL(url, jwt)', () => { |
| 6 | + const testCases: Array<[string, string, boolean, string]> = [ |
| 7 | + ['', 'deadbeef', false, '#__clerk_db_jwt[deadbeef]'], |
| 8 | + ['foo', 'deadbeef', false, 'foo#__clerk_db_jwt[deadbeef]'], |
| 9 | + ['/foo', 'deadbeef', false, '/foo#__clerk_db_jwt[deadbeef]'], |
| 10 | + ['#foo', 'deadbeef', false, '#foo__clerk_db_jwt[deadbeef]'], |
| 11 | + ['/foo?bar=42#qux', 'deadbeef', false, '/foo?bar=42#qux__clerk_db_jwt[deadbeef]'], |
| 12 | + ['/foo#__clerk_db_jwt[deadbeef]', 'deadbeef', false, '/foo#__clerk_db_jwt[deadbeef]'], |
| 13 | + ['/foo?bar=42#qux__clerk_db_jwt[deadbeef]', 'deadbeef', false, '/foo?bar=42#qux__clerk_db_jwt[deadbeef]'], |
| 14 | + ['/foo', 'deadbeef', true, '/foo?__dev_session=deadbeef'], |
| 15 | + ['/foo?bar=42', 'deadbeef', true, '/foo?bar=42&__dev_session=deadbeef'], |
| 16 | + ['/foo?bar=42&__clerk_db_jwt=deadbeef', 'deadbeef', true, '/foo?bar=42&__dev_session=deadbeef'], |
| 17 | + ['/foo?bar=42&__dev_session=deadbeef', 'deadbeef', true, '/foo?bar=42&__dev_session=deadbeef'], |
| 18 | + ]; |
| 19 | + |
| 20 | + test.each(testCases)( |
| 21 | + 'sets the dev browser JWT at the end of the provided url. Params: url=(%s), jwt=(%s), expected url=(%s)', |
| 22 | + (input, paramName, asQueryParam, expected) => { |
| 23 | + expect(setDevBrowserJWTInURL(new URL(input, DUMMY_URL_BASE), paramName, asQueryParam).href).toEqual( |
| 24 | + new URL(expected, DUMMY_URL_BASE).href, |
| 25 | + ); |
| 26 | + }, |
| 27 | + ); |
| 28 | +}); |
0 commit comments