diff options
| author | Armand Philippot <git@armandphilippot.com> | 2023-11-30 19:30:43 +0100 | 
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2023-12-01 16:08:54 +0100 | 
| commit | 5b762b1b669454a89899c4bdf6008027d9615acf (patch) | |
| tree | 37087f4ee9d14ae131bde15a48d7d04e83ae6cbd /src/utils/hooks/use-comments/use-comments.test.ts | |
| parent | f7e6f42216c3cbeab9add475a61bb407c6be3519 (diff) | |
refactor(pages): refine Article pages
* use rehype to update code blocks class names
* fix widget heading level (after a level 1 it should always be a level
2 and not 3)
* replace Spinner with LoadingPage and LoadingPageComments components to
keep layout coherent
* refactor useArticle and useComments hooks
* fix URLs in JSON LD schema
* add Cypress tests
Diffstat (limited to 'src/utils/hooks/use-comments/use-comments.test.ts')
| -rw-r--r-- | src/utils/hooks/use-comments/use-comments.test.ts | 49 | 
1 files changed, 49 insertions, 0 deletions
| diff --git a/src/utils/hooks/use-comments/use-comments.test.ts b/src/utils/hooks/use-comments/use-comments.test.ts new file mode 100644 index 0000000..f05f9eb --- /dev/null +++ b/src/utils/hooks/use-comments/use-comments.test.ts @@ -0,0 +1,49 @@ +import { +  afterEach, +  beforeEach, +  describe, +  expect, +  it, +  jest, +} from '@jest/globals'; +import { renderHook, waitFor } from '@testing-library/react'; +import { useComments } from './use-comments'; + +describe('useComments', () => { +  beforeEach(() => { +    /* Not sure why it is needed, but without it Jest was complaining with +     * `Jest worker encountered 4 child process exceptions`... Maybe because of +     * useSWR? */ +    jest.useFakeTimers({ +      doNotFake: ['queueMicrotask'], +    }); +  }); + +  afterEach(() => { +    jest.runOnlyPendingTimers(); +    jest.useRealTimers(); +  }); + +  /* eslint-disable max-statements */ +  it('fetch the requested comments', async () => { +    const { result } = renderHook(() => useComments({})); + +    // Inaccurate assertions count because of waitFor... +    //expect.assertions(8); +    expect.hasAssertions(); + +    expect(result.current.comments).toBeUndefined(); +    expect(result.current.isError).toBe(false); +    expect(result.current.isLoading).toBe(true); +    expect(result.current.isValidating).toBe(true); + +    jest.advanceTimersToNextTimer(); + +    await waitFor(() => expect(result.current.comments).toBeDefined()); + +    expect(result.current.isError).toBe(false); +    expect(result.current.isLoading).toBe(false); +    expect(result.current.isValidating).toBe(false); +  }); +  /* eslint-enable max-statements */ +}); | 
