Skip to content

Commit 7662279

Browse files
committed
chore(ci): fixed tests not working
1 parent 7c0ded2 commit 7662279

11 files changed

+842
-25
lines changed

babel.config.js

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
module.exports = {
2+
presets: [
3+
'@babel/preset-typescript',
4+
[
5+
'@babel/preset-env',
6+
{
7+
useBuiltIns: 'entry'
8+
}
9+
]
10+
]
11+
}

jest.config.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,8 @@ module.exports = {
1717
coverageDirectory: 'coverage',
1818
coverageReporters: ['html', 'lcov', 'text'],
1919
collectCoverageFrom: ['src/**/*.ts', 'packages/*/src/**/*.ts'],
20-
watchPathIgnorePatterns: ['/node_modules/']
20+
testPathIgnorePatterns: [
21+
'/node_modules/',
22+
'(/__tests__/.*|(\\.|/)(test|spec))\\.d.ts$'
23+
]
2124
}

package.json

+2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
"vue": "^2.6.11"
2222
},
2323
"devDependencies": {
24+
"@babel/preset-env": "^7.11.0",
25+
"@babel/preset-typescript": "^7.10.4",
2426
"@types/jest": "^26.0.9",
2527
"@types/resize-observer-browser": "^0.1.3",
2628
"@vue/composition-api": "^1.0.0-beta.8",
+33-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,41 @@
1+
import Vue from 'vue'
12
import { useQuery } from '../'
3+
import { renderHook } from '../../../testing/src'
4+
import { QueryStatus } from '../query'
25

36
describe('useQuery', () => {
4-
const fetch = () =>
5-
Promise.resolve({
7+
const mockFetch = jest.fn().mockResolvedValue({ mock: true })
8+
9+
const fetch = () => {
10+
console.log('calling')
11+
return Promise.resolve({
612
idk: [{ id: 1 }, { id: 2 }]
713
})
14+
}
15+
16+
it('calls query function', async () => {
17+
const wrapper = renderHook(() => {
18+
const { data, status, isLoading, isSuccess, isError, query } = useQuery(
19+
'fetch',
20+
mockFetch
21+
)
22+
23+
expect(mockFetch).toHaveBeenCalledTimes(1)
24+
expect(data.value).toBe(undefined)
25+
expect(isLoading.value).toBe(false)
26+
expect(isSuccess.value).toBe(false)
27+
expect(isError.value).toBe(false)
28+
expect(status.value).toBe(QueryStatus.Idle)
29+
30+
return { data, query, status }
31+
})
832

9-
it('', async () => {
10-
const { data } = useQuery('fetch', fetch)
11-
expect(data).toBe(await fetch())
33+
await Vue.nextTick()
34+
await Vue.nextTick()
35+
await Vue.nextTick()
36+
await Vue.nextTick()
37+
await Vue.nextTick()
38+
console.log(wrapper.vm.status)
39+
console.log(wrapper.vm.data)
1240
})
1341
})
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { provide } from '@vue/composition-api'
2+
import { QueryCache, QueryCacheConfig } from './queryCache'
3+
4+
export default function createCacheProvider(
5+
config?: QueryCacheConfig & { name?: string }
6+
) {
7+
const cache = new QueryCache(config)
8+
provide(config?.name ?? 'cache', cache)
9+
}

packages/query/src/getQueryCache.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { defaultCache } from './queryCache'
1+
import { inject } from '@vue/composition-api'
2+
import { defaultCache, QueryCache } from './queryCache'
23

3-
export function getQueryCache() {
4-
return defaultCache
4+
export function getQueryCache(name: string = 'cache'): QueryCache {
5+
return inject(name, defaultCache)
56
}

packages/query/src/injectCache.ts

Whitespace-only changes.

packages/query/src/query.ts

+1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ export class Query<TResult, TError> {
7979

8080
if (!this.config.isDataEqual!(this.state.data, data))
8181
this.dispatch({ status: QueryStatus.Success, data })
82+
8283
delete this.promise
8384

8485
return data

packages/query/src/types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import { Query, QueryStatus } from './query'
77

88
export interface BaseQueryResult<TResult, TError = unknown> {
99
status: Ref<QueryStatus>
10-
error?: TError
1110

1211
isLoading: ComputedRef<boolean>
1312
isSuccess: ComputedRef<boolean>
@@ -27,4 +26,5 @@ export interface BaseQueryResult<TResult, TError = unknown> {
2726
export interface QueryResult<TResult, TError = unknown>
2827
extends BaseQueryResult<TResult, TError> {
2928
data: Ref<TResult | undefined>
29+
error: Ref<TError | undefined>
3030
}

packages/query/src/useBaseQuery.ts

+5
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,27 @@ export function useBaseQuery<TResult, TError = unknown>(
1212

1313
const query = cache.query<TResult, TError>(key, config)
1414
const data = ref<TResult>()
15+
const error = ref<TError>()
1516
const status = ref(query.state.status)
1617

1718
const handler: SubscriptionHandler<TResult, TError> = state => {
1819
data.value = state.data
20+
error.value = state.error
1921
status.value = status.value
2022
}
2123

2224
onMounted(() => query.subscribe(handler))
2325
onUnmounted(() => query.unsubscribe(handler))
2426

27+
query.fetch()
28+
2529
const isLoading = computed(() => status.value === QueryStatus.Loading)
2630
const isError = computed(() => status.value === QueryStatus.Error)
2731
const isSuccess = computed(() => status.value === QueryStatus.Success)
2832

2933
return {
3034
data,
35+
error,
3136
status,
3237
isError,
3338
isLoading,

0 commit comments

Comments
 (0)