Added volunteer signup.
This commit is contained in:
parent
ace7f11a60
commit
8dc5d3ed01
12 changed files with 1258 additions and 49 deletions
|
|
@ -96,3 +96,50 @@ describe('api methods', () => {
|
|||
expect(f.mock.calls[0][0]).toBe('/api/sync/pull')
|
||||
})
|
||||
})
|
||||
|
||||
describe('signup methods', () => {
|
||||
it('signup.config fetches config without auth', async () => {
|
||||
const f = mockFetch({ departments: [], volunteer_note_label: 'Note' })
|
||||
await api.signup.config()
|
||||
const [url, opts] = f.mock.calls[0]
|
||||
expect(url).toBe('/api/public/signup-config')
|
||||
expect(opts.headers['Authorization']).toBeUndefined()
|
||||
})
|
||||
|
||||
it('signup.submit posts form data without auth', async () => {
|
||||
const f = mockFetch({ ok: true })
|
||||
await api.signup.submit({ preferred_name: 'Titania', email: 'titania@example.com' })
|
||||
const [url, opts] = f.mock.calls[0]
|
||||
expect(url).toBe('/api/public/signup')
|
||||
expect(opts.method).toBe('POST')
|
||||
expect(JSON.parse(opts.body)).toEqual({ preferred_name: 'Titania', email: 'titania@example.com' })
|
||||
expect(opts.headers['Authorization']).toBeUndefined()
|
||||
})
|
||||
|
||||
it('signup.confirm posts token without auth', async () => {
|
||||
const f = mockFetch({ status: 'confirmed' })
|
||||
await api.signup.confirm('abc123')
|
||||
const [url, opts] = f.mock.calls[0]
|
||||
expect(url).toBe('/api/public/confirm')
|
||||
expect(opts.method).toBe('POST')
|
||||
expect(JSON.parse(opts.body)).toEqual({ token: 'abc123' })
|
||||
expect(opts.headers['Authorization']).toBeUndefined()
|
||||
})
|
||||
|
||||
it('signup.submit throws on 400', async () => {
|
||||
mockFetch({ error: 'preferred name and email are required' }, 400)
|
||||
await expect(api.signup.submit({})).rejects.toThrow('preferred name and email are required')
|
||||
})
|
||||
})
|
||||
|
||||
describe('settings shift signups', () => {
|
||||
it('toggleShiftSignups posts open flag', async () => {
|
||||
await saveSession('tok', { id: 1 })
|
||||
const f = mockFetch({ shift_signups_open: true })
|
||||
await api.settings.toggleShiftSignups(true)
|
||||
const [url, opts] = f.mock.calls[0]
|
||||
expect(url).toBe('/api/settings/shift-signups')
|
||||
expect(opts.method).toBe('POST')
|
||||
expect(JSON.parse(opts.body)).toEqual({ open: true })
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue