chore: auth test suite lint & prettier

This commit is contained in:
Alessio Gravili
2024-03-14 10:48:48 -04:00
parent b6ce1fbd51
commit e3e0f056a9
6 changed files with 121 additions and 123 deletions

View File

@@ -8,28 +8,28 @@ import { apiKeysSlug, namedSaveToJWTValue, saveToJWTKey, slug } from './shared.j
export default buildConfigWithDefaults({
admin: {
user: 'users',
autoLogin: {
email: devUser.email,
password: devUser.password,
prefillOnly: true,
},
user: 'users',
},
collections: [
{
slug,
auth: {
tokenExpiration: 7200, // 2 hours
verify: false,
maxLoginAttempts: 2,
lockTime: 600 * 1000, // lock time in ms
useAPIKey: true,
depth: 0,
cookies: {
secure: false,
sameSite: 'Lax',
domain: undefined,
sameSite: 'Lax',
secure: false,
},
depth: 0,
lockTime: 600 * 1000, // lock time in ms
maxLoginAttempts: 2,
tokenExpiration: 7200, // 2 hours
useAPIKey: true,
verify: false,
},
fields: [
{
@@ -43,19 +43,19 @@ export default buildConfigWithDefaults({
},
{
name: 'roles',
label: 'Role',
type: 'select',
options: ['admin', 'editor', 'moderator', 'user', 'viewer'],
defaultValue: ['user'],
hasMany: true,
label: 'Role',
options: ['admin', 'editor', 'moderator', 'user', 'viewer'],
required: true,
saveToJWT: true,
hasMany: true,
},
{
name: 'namedSaveToJWT',
label: 'Named Save To JWT',
type: 'text',
defaultValue: namedSaveToJWTValue,
label: 'Named Save To JWT',
saveToJWT: saveToJWTKey,
},
{
@@ -64,55 +64,53 @@ export default buildConfigWithDefaults({
fields: [
{
name: 'liftedSaveToJWT',
label: 'Lifted Save To JWT',
type: 'text',
saveToJWT: 'x-lifted-from-group',
defaultValue: 'lifted from group',
label: 'Lifted Save To JWT',
saveToJWT: 'x-lifted-from-group',
},
],
},
{
name: 'groupSaveToJWT',
label: 'Group Save To JWT',
type: 'group',
saveToJWT: 'x-group',
fields: [
{
name: 'saveToJWTString',
label: 'Save To JWT String',
type: 'text',
saveToJWT: 'x-test',
defaultValue: 'nested property',
label: 'Save To JWT String',
saveToJWT: 'x-test',
},
{
name: 'saveToJWTFalse',
label: 'Save To JWT False',
type: 'text',
saveToJWT: false,
defaultValue: 'nested property',
label: 'Save To JWT False',
saveToJWT: false,
},
],
label: 'Group Save To JWT',
saveToJWT: 'x-group',
},
{
type: 'tabs',
tabs: [
{
name: 'saveToJWTTab',
label: 'Save To JWT Tab',
saveToJWT: true,
fields: [
{
name: 'test',
type: 'text',
saveToJWT: 'x-field',
defaultValue: 'yes',
saveToJWT: 'x-field',
},
],
label: 'Save To JWT Tab',
saveToJWT: true,
},
{
name: 'tabSaveToJWTString',
label: 'Tab Save To JWT String',
saveToJWT: 'tab-test',
fields: [
{
name: 'includedByDefault',
@@ -120,49 +118,51 @@ export default buildConfigWithDefaults({
defaultValue: 'yes',
},
],
label: 'Tab Save To JWT String',
saveToJWT: 'tab-test',
},
{
label: 'No Name',
fields: [
{
name: 'tabLiftedSaveToJWT',
label: 'Tab Lifted Save To JWT',
type: 'text',
saveToJWT: true,
defaultValue: 'lifted from unnamed tab',
label: 'Tab Lifted Save To JWT',
saveToJWT: true,
},
{
name: 'unnamedTabSaveToJWTString',
label: 'Unnamed Tab Save To JWT String',
type: 'text',
saveToJWT: 'x-tab-field',
defaultValue: 'text',
label: 'Unnamed Tab Save To JWT String',
saveToJWT: 'x-tab-field',
},
{
name: 'unnamedTabSaveToJWTFalse',
label: 'Unnamed Tab Save To JWT False',
type: 'text',
saveToJWT: false,
defaultValue: 'false',
label: 'Unnamed Tab Save To JWT False',
saveToJWT: false,
},
],
label: 'No Name',
},
],
},
{
name: 'custom',
label: 'Custom',
type: 'text',
label: 'Custom',
},
{
name: 'authDebug',
label: 'Auth Debug',
type: 'ui',
admin: {
components: {
Field: AuthDebug,
},
},
label: 'Auth Debug',
},
],
},
@@ -203,9 +203,9 @@ export default buildConfigWithDefaults({
await payload.create({
collection: 'users',
data: {
custom: 'Hello, world!',
email: devUser.email,
password: devUser.password,
custom: 'Hello, world!',
},
})

View File

@@ -32,9 +32,9 @@ describe('AuthStrategies', () => {
beforeAll(async () => {
await restClient.POST(`/${usersSlug}`, {
body: JSON.stringify({
name,
code,
secret,
name,
}),
headers,
})

View File

@@ -8,127 +8,125 @@
export interface Config {
collections: {
users: User;
'api-keys': ApiKey;
'public-users': PublicUser;
'payload-preferences': PayloadPreference;
'payload-migrations': PayloadMigration;
};
globals: {};
users: User
'api-keys': ApiKey
'public-users': PublicUser
'payload-preferences': PayloadPreference
'payload-migrations': PayloadMigration
}
globals: {}
}
export interface User {
id: string;
roles: ('admin' | 'editor' | 'moderator' | 'user' | 'viewer')[];
namedSaveToJWT?: string;
id: string
roles: ('admin' | 'editor' | 'moderator' | 'user' | 'viewer')[]
namedSaveToJWT?: string
group?: {
liftedSaveToJWT?: string;
};
liftedSaveToJWT?: string
}
groupSaveToJWT?: {
saveToJWTString?: string;
saveToJWTFalse?: string;
};
saveToJWTString?: string
saveToJWTFalse?: string
}
saveToJWTTab: {
test?: string;
};
test?: string
}
tabSaveToJWTString: {
includedByDefault?: string;
};
tabLiftedSaveToJWT?: string;
unnamedTabSaveToJWTString?: string;
unnamedTabSaveToJWTFalse?: string;
custom?: string;
updatedAt: string;
createdAt: string;
enableAPIKey?: boolean;
apiKey?: string;
apiKeyIndex?: string;
email: string;
resetPasswordToken?: string;
resetPasswordExpiration?: string;
salt?: string;
hash?: string;
loginAttempts?: number;
lockUntil?: string;
password?: string;
includedByDefault?: string
}
tabLiftedSaveToJWT?: string
unnamedTabSaveToJWTString?: string
unnamedTabSaveToJWTFalse?: string
custom?: string
updatedAt: string
createdAt: string
enableAPIKey?: boolean
apiKey?: string
apiKeyIndex?: string
email: string
resetPasswordToken?: string
resetPasswordExpiration?: string
salt?: string
hash?: string
loginAttempts?: number
lockUntil?: string
password?: string
}
export interface ApiKey {
id: string;
updatedAt: string;
createdAt: string;
enableAPIKey?: boolean;
apiKey?: string;
apiKeyIndex?: string;
id: string
updatedAt: string
createdAt: string
enableAPIKey?: boolean
apiKey?: string
apiKeyIndex?: string
}
export interface PublicUser {
id: string;
updatedAt: string;
createdAt: string;
email: string;
resetPasswordToken?: string;
resetPasswordExpiration?: string;
salt?: string;
hash?: string;
_verified?: boolean;
_verificationToken?: string;
loginAttempts?: number;
lockUntil?: string;
password?: string;
id: string
updatedAt: string
createdAt: string
email: string
resetPasswordToken?: string
resetPasswordExpiration?: string
salt?: string
hash?: string
_verified?: boolean
_verificationToken?: string
loginAttempts?: number
lockUntil?: string
password?: string
}
export interface PayloadPreference {
id: string;
id: string
user:
| {
relationTo: 'users';
value: string | User;
relationTo: 'users'
value: string | User
}
| {
relationTo: 'api-keys';
value: string | ApiKey;
relationTo: 'api-keys'
value: string | ApiKey
}
| {
relationTo: 'public-users';
value: string | PublicUser;
};
key?: string;
relationTo: 'public-users'
value: string | PublicUser
}
key?: string
value?:
| {
[k: string]: unknown;
[k: string]: unknown
}
| unknown[]
| string
| number
| boolean
| null;
updatedAt: string;
createdAt: string;
| null
updatedAt: string
createdAt: string
}
export interface PayloadMigration {
id: string;
name?: string;
batch?: number;
id: string
name?: string
batch?: number
schema?:
| {
[k: string]: unknown;
[k: string]: unknown
}
| unknown[]
| string
| number
| boolean
| null;
updatedAt: string;
createdAt: string;
| null
updatedAt: string
createdAt: string
}
declare module 'payload' {
export interface GeneratedTypes {
collections: {
'users': User
users: User
'api-keys': ApiKey
'public-users': PublicUser
'payload-preferences': PayloadPreference
'payload-migrations': PayloadMigration
}
}
}

View File

@@ -3,7 +3,6 @@ import { buildConfigWithDefaults } from '../../buildConfigWithDefaults.js'
export const collectionSlug = 'users'
export default buildConfigWithDefaults({
debug: true,
admin: {
user: 'users',
},
@@ -16,15 +15,16 @@ export default buildConfigWithDefaults({
fields: [
{
name: 'roles',
label: 'Role',
type: 'select',
options: ['admin', 'editor', 'moderator', 'user', 'viewer'],
defaultValue: 'user',
hasMany: true,
label: 'Role',
options: ['admin', 'editor', 'moderator', 'user', 'viewer'],
required: true,
saveToJWT: true,
hasMany: true,
},
],
},
],
debug: true,
})

View File

@@ -61,7 +61,7 @@ describe('Remove token from auth responses', () => {
})
const response = await restClient.POST(`/${collectionSlug}/reset-password`, {
body: JSON.stringify({ token, password: devUser.password }),
body: JSON.stringify({ password: devUser.password, token }),
})
const result = await response.json()

View File

@@ -3,11 +3,11 @@
//"extends": "./tsconfig.json",
"compilerOptions": {
// ensure that nobody can accidentally use this config for a build
"noEmit": true,
"noEmit": true
},
"include": [
// whatever paths you intend to lint
"./**/*.ts",
"./**/*.tsx"
],
]
}