Skip to content

Commit f320682

Browse files
committed
Separated key required test
1 parent 7f133d8 commit f320682

1 file changed

Lines changed: 88 additions & 61 deletions

File tree

packages/lint/src/lib/test-templates.ts

Lines changed: 88 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -160,13 +160,39 @@ const createTestCode = (
160160
* (following, followers, outbox, liked, featured, featuredTags)
161161
*/
162162
export const createRequiredDispatcherRuleTests =
163-
requiredDispatcherRuleTestsFactory(createDispatcherCode);
163+
requiredDispatcherRuleTestsFactory(createDispatcherCode, false);
164164
export const createKeyRequiredDispatcherRuleTests =
165-
requiredDispatcherRuleTestsFactory(createChainedDispatcherCode);
165+
requiredDispatcherRuleTestsFactory(createChainedDispatcherCode, true);
166166

167+
function requiredDispatcherRuleTestsFactory(
168+
createDispatcherCode: (
169+
content: string,
170+
dispatcherMethod: string,
171+
isBefore?: boolean,
172+
) => string,
173+
isKeyRequired: false,
174+
): (
175+
propertyKey: PropertyKey,
176+
config: TestConfig,
177+
) => TestSuite;
167178
function requiredDispatcherRuleTestsFactory(
168179
createDispatcherCode: (content: string, dispatcherMethod: string) => string,
169-
) {
180+
isKeyRequired: true,
181+
): (
182+
propertyKey: PropertyKey,
183+
config: TestConfig,
184+
) => TestSuite;
185+
function requiredDispatcherRuleTestsFactory(
186+
createDispatcherCode: (
187+
content: string,
188+
dispatcherMethod: string,
189+
isBefore?: boolean,
190+
) => string,
191+
isKeyRequired: boolean,
192+
): (
193+
propertyKey: PropertyKey,
194+
config: TestConfig,
195+
) => TestSuite {
170196
return function (
171197
propertyKey: PropertyKey,
172198
config: TestConfig,
@@ -201,64 +227,65 @@ function requiredDispatcherRuleTestsFactory(
201227
}),
202228
true,
203229
],
204-
205-
// ✅ Good - dispatcher configured BEFORE
206-
"dispatcher before separate with property": [
207-
lintTest({
208-
code: createDispatcherCode(
209-
createTestCode(propertyKey, true),
210-
prop.setter,
211-
true,
212-
),
213-
rule,
214-
ruleName,
215-
}),
216-
true,
217-
],
218-
219-
// ✅ Good - dispatcher configured AFTER
220-
"dispatcher after separate with property": [
221-
lintTest({
222-
code: createDispatcherCode(
223-
createTestCode(propertyKey, true),
224-
prop.setter,
225-
false,
226-
),
227-
rule,
228-
ruleName,
229-
}),
230-
true,
231-
],
232-
233-
// ❌ Bad - dispatcher before, property missing
234-
"dispatcher before separate property missing": [
235-
lintTest({
236-
code: createDispatcherCode(
237-
createTestCode(propertyKey, false),
238-
prop.setter,
239-
true,
240-
),
241-
rule,
242-
ruleName,
243-
expectedError,
244-
}),
245-
false,
246-
],
247-
248-
// ❌ Bad - dispatcher after, property missing
249-
"dispatcher after separate property missing": [
250-
lintTest({
251-
code: createDispatcherCode(
252-
createTestCode(propertyKey, false),
253-
prop.setter,
254-
false,
255-
),
256-
rule,
257-
ruleName,
258-
expectedError,
259-
}),
260-
false,
261-
],
230+
...(isKeyRequired ? {} : {
231+
// ✅ Good - dispatcher configured BEFORE
232+
"dispatcher before separate with property": [
233+
lintTest({
234+
code: createDispatcherCode(
235+
createTestCode(propertyKey, true),
236+
prop.setter,
237+
true,
238+
),
239+
rule,
240+
ruleName,
241+
}),
242+
true,
243+
],
244+
245+
// ✅ Good - dispatcher configured AFTER
246+
"dispatcher after separate with property": [
247+
lintTest({
248+
code: createDispatcherCode(
249+
createTestCode(propertyKey, true),
250+
prop.setter,
251+
false,
252+
),
253+
rule,
254+
ruleName,
255+
}),
256+
true,
257+
],
258+
259+
// ❌ Bad - dispatcher before, property missing
260+
"dispatcher before separate property missing": [
261+
lintTest({
262+
code: createDispatcherCode(
263+
createTestCode(propertyKey, false),
264+
prop.setter,
265+
true,
266+
),
267+
rule,
268+
ruleName,
269+
expectedError,
270+
}),
271+
false,
272+
],
273+
274+
// ❌ Bad - dispatcher after, property missing
275+
"dispatcher after separate property missing": [
276+
lintTest({
277+
code: createDispatcherCode(
278+
createTestCode(propertyKey, false),
279+
prop.setter,
280+
false,
281+
),
282+
rule,
283+
ruleName,
284+
expectedError,
285+
}),
286+
false,
287+
],
288+
}),
262289
};
263290
};
264291
}

0 commit comments

Comments
 (0)