* feat: add sending user requests from UI * fix(web): view controller manager user client references
70 lines
2.3 KiB
TypeScript
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)
|
|
})
|
|
})
|