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/no-explicit-any': 'warn',
// 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.
'@typescript-eslint/no-unused-vars': [
'warn',

View File

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

View File

@@ -26,7 +26,7 @@ const attachFakeURLProperties = (req: PayloadRequestWithData) => {
* *NOTE*
* If no URL is provided, the local API was called directly outside
* 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.
*/
let urlObject