Skip to content

Commit 2d66ff3

Browse files
committed
fix: use context report
1 parent 4e40289 commit 2d66ff3

File tree

2 files changed

+43
-15
lines changed

2 files changed

+43
-15
lines changed

src/linter/rules/duplicate-stability-nodes.mjs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// @ts-check
2+
13
import createQueries from '../../utils/queries/index.mjs';
24
import { LINT_MESSAGES } from '../constants.mjs';
35
import { visit } from 'unist-util-visit';
@@ -9,7 +11,6 @@ import { visit } from 'unist-util-visit';
911
* @returns {void}
1012
*/
1113
export const duplicateStabilityNodes = context => {
12-
const issues = [];
1314
let currentDepth = 0;
1415
let currentStability = -1;
1516
let currentHeaderDepth = 0;
@@ -42,7 +43,7 @@ export const duplicateStabilityNodes = context => {
4243
stability >= 0 &&
4344
stability === currentStability
4445
) {
45-
issues.push({
46+
context.report({
4647
level: 'warn',
4748
message: LINT_MESSAGES.duplicateStabilityNode,
4849
position: node.position,
@@ -57,6 +58,4 @@ export const duplicateStabilityNodes = context => {
5758
}
5859
}
5960
});
60-
61-
return issues;
6261
};

src/linter/tests/rules/duplicate-stability-nodes.test.mjs

Lines changed: 40 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { describe, it } from 'node:test';
2-
import { deepStrictEqual } from 'node:assert';
1+
import { describe, it, mock } from 'node:test';
2+
import { deepStrictEqual, strictEqual } from 'node:assert';
33
import { duplicateStabilityNodes } from '../../rules/duplicate-stability-nodes.mjs';
44
import { LINT_MESSAGES } from '../../constants.mjs';
55

@@ -44,18 +44,20 @@ const createContext = (nodes, path = 'file.md') => ({
4444
children: nodes,
4545
},
4646
path,
47+
report: mock.fn(),
4748
});
4849

4950
describe('duplicateStabilityNodes', () => {
50-
it('returns empty array when there are no stability nodes', () => {
51+
it('should not report when there are no stability nodes', () => {
5152
const context = createContext([
5253
createHeadingNode(1, 1),
5354
createHeadingNode(2, 2),
5455
]);
55-
deepStrictEqual(duplicateStabilityNodes(context), []);
56+
duplicateStabilityNodes(context);
57+
strictEqual(context.report.mock.callCount(), 0);
5658
});
5759

58-
it('returns empty array when there are no duplicate stability nodes', () => {
60+
it('should not report when there are no duplicate stability nodes', () => {
5961
const context = createContext([
6062
createHeadingNode(1, 1),
6163
createStabilityNode(0, 2),
@@ -64,7 +66,8 @@ describe('duplicateStabilityNodes', () => {
6466
createHeadingNode(3, 5),
6567
createStabilityNode(2, 6),
6668
]);
67-
deepStrictEqual(duplicateStabilityNodes(context), []);
69+
duplicateStabilityNodes(context);
70+
strictEqual(context.report.mock.callCount(), 0);
6871
});
6972

7073
it('detects duplicate stability nodes within a chain', () => {
@@ -76,7 +79,13 @@ describe('duplicateStabilityNodes', () => {
7679
duplicateNode, // Duplicate stability node
7780
]);
7881

79-
deepStrictEqual(duplicateStabilityNodes(context), [
82+
duplicateStabilityNodes(context);
83+
84+
strictEqual(context.report.mock.callCount(), 1);
85+
86+
const call = context.report.mock.calls[0];
87+
88+
deepStrictEqual(call.arguments, [
8089
{
8190
level: 'warn',
8291
message: LINT_MESSAGES.duplicateStabilityNode,
@@ -99,7 +108,13 @@ describe('duplicateStabilityNodes', () => {
99108
duplicateNode2, // This should trigger another issue
100109
]);
101110

102-
deepStrictEqual(duplicateStabilityNodes(context), [
111+
duplicateStabilityNodes(context);
112+
113+
strictEqual(context.report.mock.callCount(), 2);
114+
115+
const calls = context.report.mock.calls.flatMap(call => call.arguments);
116+
117+
deepStrictEqual(calls, [
103118
{
104119
level: 'warn',
105120
message: LINT_MESSAGES.duplicateStabilityNode,
@@ -133,7 +148,13 @@ describe('duplicateStabilityNodes', () => {
133148
duplicateNode, // This should trigger an issue
134149
]);
135150

136-
deepStrictEqual(duplicateStabilityNodes(context), [
151+
duplicateStabilityNodes(context);
152+
153+
strictEqual(context.report.mock.callCount(), 1);
154+
155+
const call = context.report.mock.calls[0];
156+
157+
deepStrictEqual(call.arguments, [
137158
{
138159
level: 'warn',
139160
message: LINT_MESSAGES.duplicateStabilityNode,
@@ -158,7 +179,13 @@ describe('duplicateStabilityNodes', () => {
158179
duplicateNode2, // This should trigger another issue
159180
]);
160181

161-
deepStrictEqual(duplicateStabilityNodes(context), [
182+
duplicateStabilityNodes(context);
183+
184+
strictEqual(context.report.mock.callCount(), 2);
185+
186+
const calls = context.report.mock.calls.flatMap(call => call.arguments);
187+
188+
deepStrictEqual(calls, [
162189
{
163190
level: 'warn',
164191
message: LINT_MESSAGES.duplicateStabilityNode,
@@ -199,6 +226,8 @@ describe('duplicateStabilityNodes', () => {
199226
},
200227
]);
201228

202-
deepStrictEqual(duplicateStabilityNodes(context), []);
229+
duplicateStabilityNodes(context);
230+
231+
strictEqual(context.report.mock.callCount(), 0);
203232
});
204233
});

0 commit comments

Comments
 (0)