47 lines
1.4 KiB
JavaScript
47 lines
1.4 KiB
JavaScript
import { get } from 'svelte/store'
|
|
import api from 'builderStore/api'
|
|
|
|
jest.mock('builderStore/api');
|
|
|
|
import { SOME_QUERY, SAVE_QUERY_RESPONSE } from './fixtures/queries'
|
|
|
|
import { createQueriesStore } from "../queries"
|
|
import { datasources } from '../datasources'
|
|
|
|
describe("Queries Store", () => {
|
|
let store = createQueriesStore()
|
|
|
|
beforeEach(async () => {
|
|
api.get.mockReturnValue({ json: () => [SOME_QUERY]})
|
|
await store.init()
|
|
})
|
|
|
|
it("Initialises correctly", async () => {
|
|
api.get.mockReturnValue({ json: () => [SOME_QUERY]})
|
|
|
|
await store.init()
|
|
expect(get(store)).toEqual({ list: [SOME_QUERY], selected: null})
|
|
})
|
|
|
|
it("fetches all the queries", async () => {
|
|
api.get.mockReturnValue({ json: () => [SOME_QUERY]})
|
|
|
|
await store.fetch()
|
|
expect(get(store)).toEqual({ list: [SOME_QUERY], selected: null})
|
|
})
|
|
|
|
it("saves the query, updates the store and returns status message", async () => {
|
|
api.post.mockReturnValue({ json: () => SAVE_QUERY_RESPONSE})
|
|
|
|
await store.select(SOME_QUERY.datasourceId, SOME_QUERY)
|
|
|
|
expect(get(store).list).toEqual(expect.arrayContaining([SOME_QUERY]))
|
|
})
|
|
it("deletes a query, updates the store and returns status message", async () => {
|
|
|
|
api.delete.mockReturnValue({status: 200, message: `Query deleted.`})
|
|
|
|
await store.delete(SOME_QUERY)
|
|
expect(get(store)).toEqual({ list: [], selected: null})
|
|
})
|
|
}) |