chore(eslint): set prefer-ts-expect-error to error

This commit is contained in:
Elliot DeNolf
2024-04-29 22:30:05 -04:00
parent 3d50caf985
commit d5f7944ac4
3 changed files with 26 additions and 36 deletions

View File

@@ -53,8 +53,9 @@ const typescriptRules = {
'@typescript-eslint/consistent-type-imports': 'warn', '@typescript-eslint/consistent-type-imports': 'warn',
'@typescript-eslint/no-explicit-any': 'warn', '@typescript-eslint/no-explicit-any': 'warn',
// Type-aware any rules end // Type-aware any rules end
// ts-expect should always be preferred over ts-ignore
'@typescript-eslint/prefer-ts-expect-error': 'warn', // ts-expect preferred over ts-ignore. It will error if the expected error is no longer present.
'@typescript-eslint/prefer-ts-expect-error': 'error',
// By default, it errors for unused variables. This is annoying, warnings are enough. // By default, it errors for unused variables. This is annoying, warnings are enough.
'@typescript-eslint/no-unused-vars': [ '@typescript-eslint/no-unused-vars': [
'warn', 'warn',

View File

@@ -1,3 +1,6 @@
import { Config } from '../../config/types'
import { InvalidFieldName, InvalidFieldRelationship, MissingFieldType } from '../../errors'
import { sanitizeFields } from './sanitize'
import type { import type {
ArrayField, ArrayField,
Block, Block,
@@ -7,34 +10,20 @@ import type {
NumberField, NumberField,
TextField, TextField,
} from './types' } from './types'
import { Config } from '../../config/types'
import { InvalidFieldName, InvalidFieldRelationship, MissingFieldType } from '../../errors'
import { sanitizeFields } from './sanitize'
import type { BaseDatabaseAdapter } from '../../database/types.js'
const dummyConfig: Config = {
collections: [],
db: {
defaultIDType: 'text',
init: () => ({}) as BaseDatabaseAdapter['init'],
} as BaseDatabaseAdapter,
}
describe('sanitizeFields', () => { describe('sanitizeFields', () => {
const config = {} as Config
it('should throw on missing type field', () => { it('should throw on missing type field', () => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
const fields: Field[] = [ const fields: Field[] = [
// @ts-expect-error
{ {
label: 'some-collection', label: 'some-collection',
name: 'Some Collection', name: 'Some Collection',
}, },
] ]
expect(() => { expect(() => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
sanitizeFields({ sanitizeFields({
config: dummyConfig, config,
fields, fields,
validRelationships: [], validRelationships: [],
}) })
@@ -50,7 +39,7 @@ describe('sanitizeFields', () => {
] ]
expect(() => { expect(() => {
sanitizeFields({ sanitizeFields({
config: dummyConfig, config,
fields, fields,
validRelationships: [], validRelationships: [],
}) })
@@ -66,7 +55,7 @@ describe('sanitizeFields', () => {
}, },
] ]
const sanitizedField = sanitizeFields({ const sanitizedField = sanitizeFields({
config: dummyConfig, config,
fields, fields,
validRelationships: [], validRelationships: [],
})[0] as TextField })[0] as TextField
@@ -83,7 +72,7 @@ describe('sanitizeFields', () => {
}, },
] ]
const sanitizedField = sanitizeFields({ const sanitizedField = sanitizeFields({
config: dummyConfig, config,
fields, fields,
validRelationships: [], validRelationships: [],
})[0] as TextField })[0] as TextField
@@ -102,7 +91,7 @@ describe('sanitizeFields', () => {
}, },
] ]
const sanitizedField = sanitizeFields({ const sanitizedField = sanitizeFields({
config: dummyConfig, config,
fields, fields,
validRelationships: [], validRelationships: [],
})[0] as TextField })[0] as TextField
@@ -124,7 +113,7 @@ describe('sanitizeFields', () => {
type: 'array', type: 'array',
} }
const sanitizedField = sanitizeFields({ const sanitizedField = sanitizeFields({
config: dummyConfig, config,
fields: [arrayField], fields: [arrayField],
validRelationships: [], validRelationships: [],
})[0] as ArrayField })[0] as ArrayField
@@ -153,7 +142,7 @@ describe('sanitizeFields', () => {
}, },
] ]
const sanitizedField = sanitizeFields({ const sanitizedField = sanitizeFields({
config: dummyConfig, config,
fields, fields,
validRelationships: [], validRelationships: [],
})[0] as BlockField })[0] as BlockField
@@ -178,7 +167,7 @@ describe('sanitizeFields', () => {
}, },
] ]
const sanitizedField = sanitizeFields({ const sanitizedField = sanitizeFields({
config: dummyConfig, config,
fields, fields,
validRelationships: [], validRelationships: [],
})[0] as ArrayField })[0] as ArrayField
@@ -202,7 +191,7 @@ describe('sanitizeFields', () => {
}, },
] ]
const sanitizedField = sanitizeFields({ const sanitizedField = sanitizeFields({
config: dummyConfig, config,
fields, fields,
validRelationships: [], validRelationships: [],
})[0] as BlockField })[0] as BlockField
@@ -229,7 +218,7 @@ describe('sanitizeFields', () => {
}, },
] ]
expect(() => { expect(() => {
sanitizeFields({ config: dummyConfig, fields, validRelationships }) sanitizeFields({ config, fields, validRelationships })
}).not.toThrow() }).not.toThrow()
}) })
@@ -244,7 +233,7 @@ describe('sanitizeFields', () => {
}, },
] ]
expect(() => { expect(() => {
sanitizeFields({ config: dummyConfig, fields, validRelationships }) sanitizeFields({ config, fields, validRelationships })
}).not.toThrow() }).not.toThrow()
}) })
@@ -270,7 +259,7 @@ describe('sanitizeFields', () => {
}, },
] ]
expect(() => { expect(() => {
sanitizeFields({ config: dummyConfig, fields, validRelationships }) sanitizeFields({ config, fields, validRelationships })
}).not.toThrow() }).not.toThrow()
}) })
@@ -285,7 +274,7 @@ describe('sanitizeFields', () => {
}, },
] ]
expect(() => { expect(() => {
sanitizeFields({ config: dummyConfig, fields, validRelationships }) sanitizeFields({ config, fields, validRelationships })
}).toThrow(InvalidFieldRelationship) }).toThrow(InvalidFieldRelationship)
}) })
@@ -300,7 +289,7 @@ describe('sanitizeFields', () => {
}, },
] ]
expect(() => { expect(() => {
sanitizeFields({ config: dummyConfig, fields, validRelationships }) sanitizeFields({ config, fields, validRelationships })
}).toThrow(InvalidFieldRelationship) }).toThrow(InvalidFieldRelationship)
}) })
@@ -326,7 +315,7 @@ describe('sanitizeFields', () => {
}, },
] ]
expect(() => { expect(() => {
sanitizeFields({ config: dummyConfig, fields, validRelationships }) sanitizeFields({ config, fields, validRelationships })
}).toThrow(InvalidFieldRelationship) }).toThrow(InvalidFieldRelationship)
}) })
@@ -340,7 +329,7 @@ describe('sanitizeFields', () => {
] ]
const sanitizedField = sanitizeFields({ const sanitizedField = sanitizeFields({
config: dummyConfig, config,
fields, fields,
validRelationships: [], validRelationships: [],
})[0] as CheckboxField })[0] as CheckboxField
@@ -349,7 +338,7 @@ describe('sanitizeFields', () => {
it('should return empty field array if no fields', () => { it('should return empty field array if no fields', () => {
const sanitizedFields = sanitizeFields({ const sanitizedFields = sanitizeFields({
config: dummyConfig, config,
fields: [], fields: [],
validRelationships: [], validRelationships: [],
}) })

View File

@@ -26,7 +26,7 @@ const attachFakeURLProperties = (req: PayloadRequestWithData) => {
* *NOTE* * *NOTE*
* If no URL is provided, the local API was called directly outside * If no URL is provided, the local API was called directly outside
* the context of a request. Therefore we create a fake URL object. * the context of a request. Therefore we create a fake URL object.
* `ts-ignore` is used below for properties that are 'read-only' * `ts-expect-error` is used below for properties that are 'read-only'
* since they do not exist yet we can safely ignore the error. * since they do not exist yet we can safely ignore the error.
*/ */
let urlObject let urlObject