/* eslint-env jest */ import User from './User' const values = { brian: { username: 'brian', email: 'brian@email.com', password: 'my-password' }, nopass: { username: 'nopass', email: 'nopass@email.com' } } const models = { brian: null, nopass: null } describe.withQuerySnapshots(() => { test('can insert users', () => { return Promise.all([ User.query().insert(values.brian), User.query().insert(values.nopass) ]) }) test('can fetch the user', () => { return User .query() .where('username', '<>', 'admin') .orderBy('username') .then((res) => { models.brian = res[0] models.nopass = res[1] expect(res.length).toBe(2) expect(models.brian.email).toBe('brian@email.com') expect(models.nopass.email).toBe('nopass@email.com') expect(User.checkPassword('my-password', models.brian.auth)).toBe(true) expect(User.checkPassword('wrong', models.brian.auth)).toBe(false) }) }) test('can update a user', () => { models.brian.role = 'admin' return User .query() .updateAndFetchById(models.brian.id, models.brian) .then((updated) => { expect(updated.role).toBe('admin') }) }) test('can patch a user', () => { return User .query() .patchAndFetchById(models.nopass.id, {password: 'easy'}) .then((patched) => { expect(User.checkPassword('easy', patched.auth)).toBe(true) expect(User.checkPassword('wrong', patched.auth)).toBe(false) }) }) })