| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import {createStore} from "~/tests/unit/Helpers";
- import User from "~/tests/unit/fixture/models/User";
- import {queryHelper} from "~/services/store/query";
- import * as _ from 'lodash'
- import {Query} from "@vuex-orm/core";
- import {AnyStore} from "~/types/interfaces";
- let store:AnyStore, query:Query
- beforeEach(()=>{
- store = createStore()
- query = store.$repo(User).query()
- })
- describe('getItem()', ()=>{
- it('should throw an error if the Item is not found', ()=>{
- expect(() => queryHelper.getItem(query, 1)).toThrow()
- })
- it('should return an Item', ()=>{
- const user = store.$repo(User).make()
- store.$repo(User).save(user)
- expect(queryHelper.getItem(query, 1)).toStrictEqual(user)
- })
- })
- describe('getCollection()', ()=>{
- it('should return an array of Items', ()=>{
- const UsersArray:Array<User> = []
- const user = store.$repo(User).make()
- UsersArray.push(user)
- store.$repo(User).save(user)
- const user2 = _.cloneDeep(user)
- user2.id = 2
- user2.name = 'Foo Bar'
- UsersArray.push(user2)
- store.$repo(User).save(user2)
- expect(queryHelper.getCollection(query)).toStrictEqual(UsersArray)
- })
- })
- describe('getFlattenEntry()', ()=>{
- it('should throw an error if the Item is not found', ()=>{
- expect(() => queryHelper.getFlattenEntry(query, 1)).toThrow()
- })
- it('should find an Item and return a JSON flatten object', () =>{
- const user = store.$repo(User).make()
- store.$repo(User).save(user)
- expect(queryHelper.getFlattenEntry(query, 1)).toStrictEqual({ id: 1, name: 'John Doe' })
- })
- })
- describe('getFlattenEntries()', ()=>{
- it('should find an Item and return a JSON flatten object', () =>{
- const user = store.$repo(User).make()
- store.$repo(User).save(user)
- const user2 = _.cloneDeep(user)
- user2.id = 2
- user2.name = 'Foo Bar'
- store.$repo(User).save(user2)
- expect(queryHelper.getFlattenEntries(query)).toStrictEqual([{ id: 1, name: 'John Doe' }, { id: 2, name: 'Foo Bar' }])
- })
- })
|