Return

All tests / src/hooks useHeating.ts

100% Statements 11/11
50% Branches 1/2
100% Functions 1/1
100% Lines 10/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 354x 4x 4x     4x   4x         4x   4x         8x             8x             8x  
import useSWR from 'swr';
import createFetcher from '@/helpers/createFetcher';
import { heatingSchema } from '../types/schemas';
import type { HeatingData } from '../types/api';
 
const url = `${process.env.NEXT_PUBLIC_DOMAIN}/api/heating`;
 
const initialValues: HeatingData = {
    outsideTemp: 0,
    zoneMeasuredTemp: 0,
};
 
const fetchHeating = createFetcher(heatingSchema, '/api/heating');
 
const useHeating = (): {
    data: HeatingData;
    error: Error | undefined;
    loading: boolean;
} => {
    const { data, error, isLoading } = useSWR<HeatingData, Error>(url, fetchHeating, {
        keepPreviousData: true,
        fallback: initialValues,
        fallbackData: initialValues,
        dedupingInterval: 5000,
    });
 
    return {
        data: data ?? initialValues,
        error,
        loading: isLoading,
    };
};
 
export default useHeating;