fix: cast useList mock return values to any in IntelGpuDataContext.test.tsx
The Headlamp useList() return type is an intersection of a tuple and QueryListResponse, which plain array literals like [[], null] and [null, null] do not satisfy. Cast all useList mockReturnValue arguments to any so tsc passes without requiring full KubeObject stub objects. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -57,8 +57,8 @@ describe('useIntelGpuContext', () => {
|
|||||||
|
|
||||||
describe('IntelGpuDataProvider', () => {
|
describe('IntelGpuDataProvider', () => {
|
||||||
it('renders children', async () => {
|
it('renders children', async () => {
|
||||||
vi.mocked(K8s.ResourceClasses.Node.useList).mockReturnValue([[], null]);
|
vi.mocked(K8s.ResourceClasses.Node.useList).mockReturnValue([[], null] as any);
|
||||||
vi.mocked(K8s.ResourceClasses.Pod.useList).mockReturnValue([[], null]);
|
vi.mocked(K8s.ResourceClasses.Pod.useList).mockReturnValue([[], null] as any);
|
||||||
vi.mocked(ApiProxy.request).mockResolvedValue({ items: [] });
|
vi.mocked(ApiProxy.request).mockResolvedValue({ items: [] });
|
||||||
|
|
||||||
render(
|
render(
|
||||||
@@ -71,8 +71,8 @@ describe('IntelGpuDataProvider', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('exposes loading=true while nodes/pods are null', async () => {
|
it('exposes loading=true while nodes/pods are null', async () => {
|
||||||
vi.mocked(K8s.ResourceClasses.Node.useList).mockReturnValue([null, null]);
|
vi.mocked(K8s.ResourceClasses.Node.useList).mockReturnValue([null, null] as any);
|
||||||
vi.mocked(K8s.ResourceClasses.Pod.useList).mockReturnValue([null, null]);
|
vi.mocked(K8s.ResourceClasses.Pod.useList).mockReturnValue([null, null] as any);
|
||||||
// Keep async request pending forever
|
// Keep async request pending forever
|
||||||
vi.mocked(ApiProxy.request).mockReturnValue(new Promise(() => {}));
|
vi.mocked(ApiProxy.request).mockReturnValue(new Promise(() => {}));
|
||||||
|
|
||||||
@@ -83,10 +83,10 @@ describe('IntelGpuDataProvider', () => {
|
|||||||
|
|
||||||
it('exposes loaded state with GPU nodes once data arrives', async () => {
|
it('exposes loaded state with GPU nodes once data arrives', async () => {
|
||||||
vi.mocked(K8s.ResourceClasses.Node.useList).mockReturnValue([
|
vi.mocked(K8s.ResourceClasses.Node.useList).mockReturnValue([
|
||||||
[makeNodeWrapper(gpuNodeRaw)],
|
[makeNodeWrapper(gpuNodeRaw)] as any,
|
||||||
null,
|
null,
|
||||||
]);
|
] as any);
|
||||||
vi.mocked(K8s.ResourceClasses.Pod.useList).mockReturnValue([[], null]);
|
vi.mocked(K8s.ResourceClasses.Pod.useList).mockReturnValue([[], null] as any);
|
||||||
vi.mocked(ApiProxy.request).mockResolvedValue({ items: [] });
|
vi.mocked(ApiProxy.request).mockResolvedValue({ items: [] });
|
||||||
|
|
||||||
const { result } = renderHook(() => useIntelGpuContext(), { wrapper: Wrapper });
|
const { result } = renderHook(() => useIntelGpuContext(), { wrapper: Wrapper });
|
||||||
@@ -97,8 +97,8 @@ describe('IntelGpuDataProvider', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('sets crdAvailable=true and populates devicePlugins when ApiProxy returns plugin list', async () => {
|
it('sets crdAvailable=true and populates devicePlugins when ApiProxy returns plugin list', async () => {
|
||||||
vi.mocked(K8s.ResourceClasses.Node.useList).mockReturnValue([[], null]);
|
vi.mocked(K8s.ResourceClasses.Node.useList).mockReturnValue([[], null] as any);
|
||||||
vi.mocked(K8s.ResourceClasses.Pod.useList).mockReturnValue([[], null]);
|
vi.mocked(K8s.ResourceClasses.Pod.useList).mockReturnValue([[], null] as any);
|
||||||
|
|
||||||
// First call = CRD list, subsequent calls = plugin pod selectors (empty)
|
// First call = CRD list, subsequent calls = plugin pod selectors (empty)
|
||||||
vi.mocked(ApiProxy.request)
|
vi.mocked(ApiProxy.request)
|
||||||
@@ -114,8 +114,8 @@ describe('IntelGpuDataProvider', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('sets crdAvailable=false and does not surface error when ApiProxy throws on CRD request', async () => {
|
it('sets crdAvailable=false and does not surface error when ApiProxy throws on CRD request', async () => {
|
||||||
vi.mocked(K8s.ResourceClasses.Node.useList).mockReturnValue([[], null]);
|
vi.mocked(K8s.ResourceClasses.Node.useList).mockReturnValue([[], null] as any);
|
||||||
vi.mocked(K8s.ResourceClasses.Pod.useList).mockReturnValue([[], null]);
|
vi.mocked(K8s.ResourceClasses.Pod.useList).mockReturnValue([[], null] as any);
|
||||||
|
|
||||||
// First call (CRD endpoint) throws, plugin pod selectors resolve empty
|
// First call (CRD endpoint) throws, plugin pod selectors resolve empty
|
||||||
vi.mocked(ApiProxy.request)
|
vi.mocked(ApiProxy.request)
|
||||||
@@ -132,8 +132,8 @@ describe('IntelGpuDataProvider', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('increments refreshKey and re-runs the effect when refresh() is called', async () => {
|
it('increments refreshKey and re-runs the effect when refresh() is called', async () => {
|
||||||
vi.mocked(K8s.ResourceClasses.Node.useList).mockReturnValue([[], null]);
|
vi.mocked(K8s.ResourceClasses.Node.useList).mockReturnValue([[], null] as any);
|
||||||
vi.mocked(K8s.ResourceClasses.Pod.useList).mockReturnValue([[], null]);
|
vi.mocked(K8s.ResourceClasses.Pod.useList).mockReturnValue([[], null] as any);
|
||||||
vi.mocked(ApiProxy.request).mockResolvedValue({ items: [] });
|
vi.mocked(ApiProxy.request).mockResolvedValue({ items: [] });
|
||||||
|
|
||||||
const { result } = renderHook(() => useIntelGpuContext(), { wrapper: Wrapper });
|
const { result } = renderHook(() => useIntelGpuContext(), { wrapper: Wrapper });
|
||||||
|
|||||||
Reference in New Issue
Block a user