Skip to content

Commit

Permalink
feat(experimental-utils): moved types eslint-plugin util to experimen…
Browse files Browse the repository at this point in the history
…tal-utils package
  • Loading branch information
detljh committed Jun 7, 2021
1 parent 2a4fd07 commit bed4a9e
Showing 1 changed file with 38 additions and 19 deletions.
@@ -1,9 +1,8 @@
import * as ts from 'typescript';
import { TSESTree } from '@typescript-eslint/experimental-utils';
import { parseForESLint } from '@typescript-eslint/parser';
import { getFixturesRootDir } from '@typescript-eslint/eslint-plugin/tests/RuleTester';
import path from 'path';
import { getFixturesRootDir } from '../RuleTester';
import { isUnsafeAssignment } from '../../src/util';
import { ESLintUtils, TSESTree } from '../../src';

describe('isUnsafeAssignment', () => {
const rootDir = getFixturesRootDir();
Expand Down Expand Up @@ -34,7 +33,7 @@ describe('isUnsafeAssignment', () => {

describe('unsafe', () => {
function expectTypesAre(
result: ReturnType<typeof isUnsafeAssignment>,
result: ReturnType<typeof ESLintUtils.isUnsafeAssignment>,
checker: ts.TypeChecker,
senderStr: string,
receiverStr: string,
Expand All @@ -52,7 +51,7 @@ describe('isUnsafeAssignment', () => {
);

expectTypesAre(
isUnsafeAssignment(sender, receiver, checker),
ESLintUtils.isUnsafeAssignment(sender, receiver, checker),
checker,
'any',
'string',
Expand All @@ -65,7 +64,7 @@ describe('isUnsafeAssignment', () => {
);

expectTypesAre(
isUnsafeAssignment(sender, receiver, checker),
ESLintUtils.isUnsafeAssignment(sender, receiver, checker),
checker,
'Set<any>',
'Set<string>',
Expand All @@ -78,7 +77,7 @@ describe('isUnsafeAssignment', () => {
);

expectTypesAre(
isUnsafeAssignment(sender, receiver, checker),
ESLintUtils.isUnsafeAssignment(sender, receiver, checker),
checker,
'Map<string, any>',
'Map<string, string>',
Expand All @@ -91,7 +90,7 @@ describe('isUnsafeAssignment', () => {
);

expectTypesAre(
isUnsafeAssignment(sender, receiver, checker),
ESLintUtils.isUnsafeAssignment(sender, receiver, checker),
checker,
'Set<any[]>',
'Set<string[]>',
Expand All @@ -104,7 +103,7 @@ describe('isUnsafeAssignment', () => {
);

expectTypesAre(
isUnsafeAssignment(sender, receiver, checker),
ESLintUtils.isUnsafeAssignment(sender, receiver, checker),
checker,
'Set<Set<Set<any>>>',
'Set<Set<Set<string>>>',
Expand All @@ -118,77 +117,97 @@ describe('isUnsafeAssignment', () => {
'const test: string = "";',
);

expect(isUnsafeAssignment(sender, receiver, checker)).toBeFalsy();
expect(
ESLintUtils.isUnsafeAssignment(sender, receiver, checker),
).toBeFalsy();
});

it('non-any to a any', () => {
const { sender, receiver, checker } = getTypes('const test: any = "";');

expect(isUnsafeAssignment(sender, receiver, checker)).toBeFalsy();
expect(
ESLintUtils.isUnsafeAssignment(sender, receiver, checker),
).toBeFalsy();
});

it('non-any in a generic position to a non-any', () => {
const { sender, receiver, checker } = getTypes(
'const test: Set<string> = new Set<string>();',
);

expect(isUnsafeAssignment(sender, receiver, checker)).toBeFalsy();
expect(
ESLintUtils.isUnsafeAssignment(sender, receiver, checker),
).toBeFalsy();
});

it('non-any in a generic position to a non-any (multiple generics)', () => {
const { sender, receiver, checker } = getTypes(
'const test: Map<string, string> = new Map<string, string>();',
);

expect(isUnsafeAssignment(sender, receiver, checker)).toBeFalsy();
expect(
ESLintUtils.isUnsafeAssignment(sender, receiver, checker),
).toBeFalsy();
});

it('non-any[] in a generic position to a non-any[]', () => {
const { sender, receiver, checker } = getTypes(
'const test: Set<string[]> = new Set<string[]>();',
);

expect(isUnsafeAssignment(sender, receiver, checker)).toBeFalsy();
expect(
ESLintUtils.isUnsafeAssignment(sender, receiver, checker),
).toBeFalsy();
});

it('non-any in a generic position to a non-any (nested)', () => {
const { sender, receiver, checker } = getTypes(
'const test: Set<Set<Set<string>>> = new Set<Set<Set<string>>>();',
);

expect(isUnsafeAssignment(sender, receiver, checker)).toBeFalsy();
expect(
ESLintUtils.isUnsafeAssignment(sender, receiver, checker),
).toBeFalsy();
});

it('non-any in a generic position to a any (nested)', () => {
const { sender, receiver, checker } = getTypes(
'const test: Set<Set<Set<any>>> = new Set<Set<Set<string>>>();',
);

expect(isUnsafeAssignment(sender, receiver, checker)).toBeFalsy();
expect(
ESLintUtils.isUnsafeAssignment(sender, receiver, checker),
).toBeFalsy();
});

it('any to a unknown', () => {
const { sender, receiver, checker } = getTypes(
'const test: unknown = [] as any;',
);

expect(isUnsafeAssignment(sender, receiver, checker)).toBeFalsy();
expect(
ESLintUtils.isUnsafeAssignment(sender, receiver, checker),
).toBeFalsy();
});

it('any[] in a generic position to a unknown[]', () => {
const { sender, receiver, checker } = getTypes(
'const test: unknown[] = [] as any[]',
);

expect(isUnsafeAssignment(sender, receiver, checker)).toBeFalsy();
expect(
ESLintUtils.isUnsafeAssignment(sender, receiver, checker),
).toBeFalsy();
});

it('any in a generic position to a unknown (nested)', () => {
const { sender, receiver, checker } = getTypes(
'const test: Set<Set<Set<unknown>>> = new Set<Set<Set<any>>>();',
);

expect(isUnsafeAssignment(sender, receiver, checker)).toBeFalsy();
expect(
ESLintUtils.isUnsafeAssignment(sender, receiver, checker),
).toBeFalsy();
});
});
});

0 comments on commit bed4a9e

Please sign in to comment.