query.spec.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import * as _ from 'lodash'
  2. import { Query } from '@vuex-orm/core'
  3. import { createStore } from '~/tests/unit/Helpers'
  4. import User from '~/tests/unit/fixture/models/User'
  5. import { queryHelper } from '~/services/store/query'
  6. import { AnyStore } from '~/types/interfaces'
  7. let store:AnyStore, query:Query
  8. beforeEach(() => {
  9. store = createStore()
  10. query = store.$repo(User).query()
  11. })
  12. describe('getItem()', () => {
  13. it('should throw an error if the Item is not found', () => {
  14. expect(() => queryHelper.getItem(query, 1)).toThrowError('item not found')
  15. })
  16. it('should return an Item', () => {
  17. const user = store.$repo(User).make()
  18. store.$repo(User).save(user)
  19. expect(queryHelper.getItem(query, 1)).toStrictEqual(user)
  20. })
  21. })
  22. describe('getCollection()', () => {
  23. it('should return an array of Items', () => {
  24. const UsersArray:Array<User> = []
  25. const user = store.$repo(User).make()
  26. UsersArray.push(user)
  27. store.$repo(User).save(user)
  28. const user2 = _.cloneDeep(user)
  29. user2.id = 2
  30. user2.name = 'Foo Bar'
  31. UsersArray.push(user2)
  32. store.$repo(User).save(user2)
  33. expect(queryHelper.getCollection(query)).toStrictEqual(UsersArray)
  34. })
  35. })
  36. describe('getFlattenEntry()', () => {
  37. it('should throw an error if the Item is not found', () => {
  38. expect(() => queryHelper.getFlattenEntry(query, 1)).toThrowError('item not found')
  39. })
  40. it('should find an Item and return a JSON flatten object', () => {
  41. const user = store.$repo(User).make()
  42. store.$repo(User).save(user)
  43. expect(queryHelper.getFlattenEntry(query, 1)).toStrictEqual({ id: 1, name: 'John Doe' })
  44. })
  45. })
  46. describe('getFlattenEntries()', () => {
  47. it('should find an Item and return a JSON flatten object', () => {
  48. const user = store.$repo(User).make()
  49. store.$repo(User).save(user)
  50. const user2 = _.cloneDeep(user)
  51. user2.id = 2
  52. user2.name = 'Foo Bar'
  53. store.$repo(User).save(user2)
  54. expect(queryHelper.getFlattenEntries(query)).toStrictEqual([{ id: 1, name: 'John Doe' }, { id: 2, name: 'Foo Bar' }])
  55. })
  56. })