Skip to content

Commit 77d7cea

Browse files
fix linting in serverRenderReactComponent.test.ts
1 parent 440540b commit 77d7cea

File tree

2 files changed

+23
-17
lines changed

2 files changed

+23
-17
lines changed

eslint.config.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,11 @@ const config = tsEslint.config([
145145
languageOptions: {
146146
parserOptions: {
147147
projectService: {
148-
allowDefaultProject: ['eslint.config.ts', 'knip.ts', 'node_package/tests/**/*.ts'],
148+
allowDefaultProject: [
149+
'eslint.config.ts',
150+
'knip.ts',
151+
'node_package/tests/serverRenderReactComponent.test.ts',
152+
],
149153
// Needed because `import * as ... from` instead of `import ... from` doesn't work in this file
150154
// for some imports.
151155
defaultProject: 'tsconfig.eslint.json',

node_package/tests/serverRenderReactComponent.test.ts

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import type {
77
RailsContext,
88
RenderFunction,
99
RenderFunctionResult,
10-
ServerRenderResult,
1110
} from '../src/types';
1211

1312
const assertIsString: (value: unknown) => asserts value is string = (value: unknown) => {
@@ -24,11 +23,6 @@ const assertIsPromise: <T>(value: null | string | Promise<T>) => asserts value i
2423
}
2524
};
2625

27-
// This function is used to ensure type safety when matching objects in TypeScript tests
28-
const expectMatchObject = <T extends object>(actual: T, expected: T) => {
29-
expect(actual).toMatchObject(expected);
30-
};
31-
3226
describe('serverRenderReactComponent', () => {
3327
beforeEach(() => {
3428
ComponentRegistry.components().clear();
@@ -83,9 +77,10 @@ describe('serverRenderReactComponent', () => {
8377

8478
it('serverRenderReactComponent renders html renderedHtml property', () => {
8579
const expectedHtml = '<div>Hello</div>';
86-
const X3: RenderFunction = (_: unknown, __?: RailsContext): { renderedHtml: string } => ({
80+
const X3: RenderFunction = (): { renderedHtml: string } => ({
8781
renderedHtml: expectedHtml,
8882
});
83+
X3.renderFunction = true;
8984

9085
ComponentRegistry.register({ X3 });
9186

@@ -106,9 +101,10 @@ describe('serverRenderReactComponent', () => {
106101
});
107102

108103
it("doesn't render object without renderedHtml property", () => {
109-
const X4 = (_props: unknown, _railsContext?: RailsContext): { foo: string } => ({
104+
const X4 = (): { foo: string } => ({
110105
foo: 'bar',
111106
});
107+
X4.renderFunction = true;
112108

113109
ComponentRegistry.register({ X4: X4 as unknown as RenderFunction });
114110
const renderResult = serverRenderReactComponent({
@@ -137,7 +133,8 @@ describe('serverRenderReactComponent', () => {
137133
// "Error: Invalid tag name <div>Hello</div>"
138134
it("doesn't render html string returned directly from render function", () => {
139135
const expectedHtml = '<div>Hello</div>';
140-
const X4: RenderFunction = (_props: unknown, _railsContext?: RailsContext): string => expectedHtml;
136+
const X4: RenderFunction = (): string => expectedHtml;
137+
X4.renderFunction = true;
141138

142139
ComponentRegistry.register({ X4 });
143140

@@ -162,8 +159,8 @@ describe('serverRenderReactComponent', () => {
162159

163160
it('serverRenderReactComponent renders promise of string html', async () => {
164161
const expectedHtml = '<div>Hello</div>';
165-
const X5: RenderFunction = (_props: unknown, _railsContext?: RailsContext): Promise<string> =>
166-
Promise.resolve(expectedHtml);
162+
const X5: RenderFunction = (): Promise<string> => Promise.resolve(expectedHtml);
163+
X5.renderFunction = true;
167164

168165
ComponentRegistry.register({ X5 });
169166

@@ -190,8 +187,8 @@ describe('serverRenderReactComponent', () => {
190187
// This is demonstrated in the "can render async render function used with react_component_hash helper" test.
191188
it('serverRenderReactComponent returns the object returned by the async render function', async () => {
192189
const resultObject = { renderedHtml: '<div>Hello</div>' };
193-
const X6 = ((_props: unknown, _railsContext?: RailsContext): Promise<ServerRenderResult> =>
194-
Promise.resolve(resultObject)) as RenderFunction;
190+
const X6 = (() => Promise.resolve(resultObject)) as RenderFunction;
191+
X6.renderFunction = true;
195192

196193
ComponentRegistry.register({ X6 });
197194

@@ -214,7 +211,8 @@ describe('serverRenderReactComponent', () => {
214211
// This is useful when we want to render a component using the `react_component_hash` helper.
215212
it('can render async render function used with react_component_hash helper', async () => {
216213
const reactComponentHashResult = { componentHtml: '<div>Hello</div>' };
217-
const X7 = (_props: unknown, _railsContext?: RailsContext) => Promise.resolve(reactComponentHashResult);
214+
const X7: RenderFunction = () => Promise.resolve(reactComponentHashResult);
215+
X7.renderFunction = true;
218216

219217
ComponentRegistry.register({ X7 });
220218

@@ -233,8 +231,9 @@ describe('serverRenderReactComponent', () => {
233231
});
234232

235233
it('serverRenderReactComponent renders async render function that returns react component', async () => {
236-
const X8 = (_props: unknown, _railsContext?: RailsContext) =>
237-
Promise.resolve(() => React.createElement('div', null, 'Hello'));
234+
const X8: RenderFunction = () => Promise.resolve(() => React.createElement('div', null, 'Hello'));
235+
X8.renderFunction = true;
236+
238237
ComponentRegistry.register({ X8 });
239238

240239
const renderResult = serverRenderReactComponent({
@@ -251,8 +250,11 @@ describe('serverRenderReactComponent', () => {
251250

252251
it('serverRenderReactComponent renders an error if attempting to render a renderer', () => {
253252
const X4: RenderFunction = (
253+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
254254
_props: unknown,
255+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
255256
_railsContext?: RailsContext,
257+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
256258
_domNodeId?: string,
257259
): RenderFunctionResult => ({ renderedHtml: '' });
258260

0 commit comments

Comments
 (0)