Skip to content

Commit a2054a7

Browse files
committed
Create/use/test assertNotNull
1 parent a1dd9c8 commit a2054a7

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

src/app/components/more-fewer/more-fewer.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
44
import {faCaretLeft} from '@fortawesome/free-solid-svg-icons/faCaretLeft';
55
import {faCaretRight} from '@fortawesome/free-solid-svg-icons/faCaretRight';
66
import $ from '~/helpers/$';
7+
import {assertNotNull} from '~/helpers/data';
78
import {treatSpaceOrEnterAsClick} from '~/helpers/events';
89

910
function PseudoButton({onClick, children}: React.PropsWithChildren<{
@@ -49,7 +50,7 @@ export function Paginated({children, perPage=10}: {
4950
}
5051
useEffect(() => {
5152
if (pageChanged) {
52-
$.scrollTo(ref.current as HTMLDivElement, 70);
53+
$.scrollTo(assertNotNull(ref.current), 70);
5354
}
5455
}, [pageChanged]);
5556

src/app/helpers/data.tsx

+7
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ export function assertDefined<T>(value: T | undefined): T {
77
return value;
88
}
99

10+
export function assertNotNull<T>(value: T | null): T {
11+
if (value === null) {
12+
throw new Error('Value is null');
13+
}
14+
return value;
15+
}
16+
1017
export function formatDateForBlog(date: string) {
1118
if (!date) {
1219
return null;

test/src/helpers/data.test.tsx

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from 'react';
22
import {describe, test, expect} from '@jest/globals';
33
import {render, screen} from '@testing-library/preact';
4-
import {useSet, assertDefined} from '~/helpers/data';
4+
import {useSet, assertDefined, assertNotNull} from '~/helpers/data';
55

66
function Component() {
77
const s = useSet([1]);
@@ -34,4 +34,9 @@ describe('helpers/data', () => {
3434

3535
expect(() => assertDefined(foo)).toThrowError();
3636
});
37+
test('assertNotNull throws', () => {
38+
const foo = null;
39+
40+
expect(() => assertNotNull(foo)).toThrowError();
41+
});
3742
});

0 commit comments

Comments
 (0)