Skip to content

Commit a2db480

Browse files
committed
Add testcases
1 parent 89a502a commit a2db480

File tree

1 file changed

+167
-0
lines changed

1 file changed

+167
-0
lines changed

src/rules/no-implicit-propagation.test.js

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,73 @@ ruleTester.run(
204204
};
205205
`,
206206
},
207+
{
208+
code: `
209+
class Foo {
210+
/**
211+
* @throws {Error}
212+
*/
213+
get bar() {
214+
throw new Error('baz');
215+
}
216+
/**
217+
* @throws {TypeError}
218+
*/
219+
set bar(value) {
220+
throw new TypeError('baz');
221+
}
222+
};
223+
const baz = () => {
224+
try {
225+
new Foo().bar;
226+
} catch {}
227+
};
228+
`,
229+
},
230+
{
231+
code: `
232+
class Foo {
233+
/**
234+
* @throws {SyntaxError}
235+
*/
236+
get bar() {
237+
throw new SyntaxError('baz');
238+
}
239+
/**
240+
* @throws {TypeError}
241+
*/
242+
set bar(value) {
243+
throw new TypeError('baz');
244+
}
245+
};
246+
/** @throws {SyntaxError} */
247+
const baz = () => {
248+
new Foo().bar;
249+
};
250+
`,
251+
},
252+
{
253+
code: `
254+
class Foo {
255+
/**
256+
* @throws {SyntaxError}
257+
*/
258+
get bar() {
259+
throw new SyntaxError('baz');
260+
}
261+
/**
262+
* @throws {TypeError}
263+
*/
264+
set bar(value) {
265+
throw new TypeError('baz');
266+
}
267+
};
268+
/** @throws {TypeError} */
269+
const baz = () => {
270+
new Foo().bar = 42;
271+
};
272+
`,
273+
},
207274
],
208275
invalid: [
209276
{
@@ -623,6 +690,106 @@ ruleTester.run(
623690
},
624691
],
625692
},
693+
{
694+
code: `
695+
class Foo {
696+
/**
697+
* @throws {Error}
698+
*/
699+
get bar() {
700+
throw new Error('baz');
701+
}
702+
/**
703+
* @throws {TypeError}
704+
*/
705+
set bar(value) {
706+
throw new TypeError('baz');
707+
}
708+
};
709+
const baz = () => {
710+
new Foo().bar = 42;
711+
};
712+
`,
713+
output: `
714+
class Foo {
715+
/**
716+
* @throws {Error}
717+
*/
718+
get bar() {
719+
throw new Error('baz');
720+
}
721+
/**
722+
* @throws {TypeError}
723+
*/
724+
set bar(value) {
725+
throw new TypeError('baz');
726+
}
727+
};
728+
const baz = () => {
729+
try {
730+
new Foo().bar = 42;
731+
} catch {}
732+
};
733+
`,
734+
errors: [
735+
{ messageId: 'implicitPropagation' },
736+
],
737+
options: [
738+
{
739+
tabLength: 2,
740+
},
741+
],
742+
},
743+
{
744+
code: `
745+
class Foo {
746+
/**
747+
* @throws {Error}
748+
*/
749+
get bar() {
750+
throw new Error('baz');
751+
}
752+
/**
753+
* @throws {TypeError}
754+
*/
755+
set bar(value) {
756+
throw new TypeError('baz');
757+
}
758+
};
759+
const baz = () => {
760+
new Foo().bar;
761+
};
762+
`,
763+
output: `
764+
class Foo {
765+
/**
766+
* @throws {Error}
767+
*/
768+
get bar() {
769+
throw new Error('baz');
770+
}
771+
/**
772+
* @throws {TypeError}
773+
*/
774+
set bar(value) {
775+
throw new TypeError('baz');
776+
}
777+
};
778+
const baz = () => {
779+
try {
780+
new Foo().bar;
781+
} catch {}
782+
};
783+
`,
784+
errors: [
785+
{ messageId: 'implicitPropagation' },
786+
],
787+
options: [
788+
{
789+
tabLength: 2,
790+
},
791+
],
792+
},
626793
],
627794
},
628795
);

0 commit comments

Comments
 (0)