Files
standardnotes-app-web/packages/ui-services/src/Route/RouteParser.spec.ts
Karol Sójko 7ead0f655b feat: add sending user requests from UI (#1927)
* feat: add sending user requests from UI

* fix(web): view controller manager user client references
2022-11-03 09:39:38 +01:00

70 lines
2.3 KiB
TypeScript

import { UserRequestType } from '@standardnotes/common'
import { RouteParser } from './RouteParser'
import { RouteType } from './RouteType'
describe('route parser', () => {
it('routes to onboarding', () => {
const url = 'https://app.standardnotes.com/onboard?from_homepage=true'
const parser = new RouteParser(url)
expect(parser.type).toEqual(RouteType.Onboarding)
expect(parser.onboardingParams.fromHomepage).toEqual(true)
})
it('routes to demo', () => {
const url = 'https://app-demo.standardnotes.com/?demo-token=eyJhY2Nlc3NUb2tl'
const parser = new RouteParser(url)
expect(parser.type).toEqual(RouteType.Demo)
expect(parser.demoParams.token).toEqual('eyJhY2Nlc3NUb2tl')
})
it('routes to settings', () => {
const url = 'https://app.standardnotes.com/?settings=account'
const parser = new RouteParser(url)
expect(parser.type).toEqual(RouteType.Settings)
expect(parser.settingsParams.panel).toEqual('account')
})
it('routes to purchase', () => {
const url = 'https://app.standardnotes.com/?purchase=true&plan=PLUS_PLAN&period=year'
const parser = new RouteParser(url)
expect(parser.type).toEqual(RouteType.Purchase)
expect(parser.purchaseParams.period).toEqual('year')
expect(parser.purchaseParams.plan).toEqual('PLUS_PLAN')
})
it('routes to none', () => {
const url = 'https://app.standardnotes.com/unknown?foo=bar'
const parser = new RouteParser(url)
expect(parser.type).toEqual(RouteType.None)
})
it('accessing wrong params should throw', () => {
const url = 'https://app.standardnotes.com/item?uuid=123'
const parser = new RouteParser(url)
expect(() => parser.onboardingParams).toThrowError('Accessing invalid params')
})
it('routes to subscription sharing', () => {
const url = 'https://app.standardnotes.com/?accept-subscription-invite=1-2-3'
const parser = new RouteParser(url)
expect(parser.type).toEqual(RouteType.AcceptSubscriptionInvite)
expect(parser.subscriptionInviteParams.inviteUuid).toEqual('1-2-3')
})
it('routes to user request', () => {
const url = 'https://app.standardnotes.com/?user-request=exit-discount'
const parser = new RouteParser(url)
expect(parser.type).toEqual(RouteType.UserRequest)
expect(parser.userRequestParams.requestType).toEqual(UserRequestType.ExitDiscount)
})
})