chore: auth test suite lint & prettier
This commit is contained in:
@@ -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!',
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
@@ -32,9 +32,9 @@ describe('AuthStrategies', () => {
|
||||
beforeAll(async () => {
|
||||
await restClient.POST(`/${usersSlug}`, {
|
||||
body: JSON.stringify({
|
||||
name,
|
||||
code,
|
||||
secret,
|
||||
name,
|
||||
}),
|
||||
headers,
|
||||
})
|
||||
|
||||
@@ -8,127 +8,125 @@
|
||||
|
||||
export interface Config {
|
||||
collections: {
|
||||
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;
|
||||
group?: {
|
||||
liftedSaveToJWT?: string;
|
||||
};
|
||||
groupSaveToJWT?: {
|
||||
saveToJWTString?: string;
|
||||
saveToJWTFalse?: string;
|
||||
};
|
||||
saveToJWTTab: {
|
||||
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;
|
||||
}
|
||||
export interface ApiKey {
|
||||
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;
|
||||
}
|
||||
export interface PayloadPreference {
|
||||
id: string;
|
||||
user:
|
||||
| {
|
||||
relationTo: 'users';
|
||||
value: string | User;
|
||||
}
|
||||
| {
|
||||
relationTo: 'api-keys';
|
||||
value: string | ApiKey;
|
||||
}
|
||||
| {
|
||||
relationTo: 'public-users';
|
||||
value: string | PublicUser;
|
||||
};
|
||||
key?: string;
|
||||
value?:
|
||||
| {
|
||||
[k: string]: unknown;
|
||||
}
|
||||
| unknown[]
|
||||
| string
|
||||
| number
|
||||
| boolean
|
||||
| null;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
export interface PayloadMigration {
|
||||
id: string;
|
||||
name?: string;
|
||||
batch?: number;
|
||||
schema?:
|
||||
| {
|
||||
[k: string]: unknown;
|
||||
}
|
||||
| unknown[]
|
||||
| string
|
||||
| number
|
||||
| boolean
|
||||
| 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
|
||||
}
|
||||
globals: {}
|
||||
}
|
||||
export interface User {
|
||||
id: string
|
||||
roles: ('admin' | 'editor' | 'moderator' | 'user' | 'viewer')[]
|
||||
namedSaveToJWT?: string
|
||||
group?: {
|
||||
liftedSaveToJWT?: string
|
||||
}
|
||||
groupSaveToJWT?: {
|
||||
saveToJWTString?: string
|
||||
saveToJWTFalse?: string
|
||||
}
|
||||
saveToJWTTab: {
|
||||
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
|
||||
}
|
||||
export interface ApiKey {
|
||||
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
|
||||
}
|
||||
export interface PayloadPreference {
|
||||
id: string
|
||||
user:
|
||||
| {
|
||||
relationTo: 'users'
|
||||
value: string | User
|
||||
}
|
||||
| {
|
||||
relationTo: 'api-keys'
|
||||
value: string | ApiKey
|
||||
}
|
||||
| {
|
||||
relationTo: 'public-users'
|
||||
value: string | PublicUser
|
||||
}
|
||||
key?: string
|
||||
value?:
|
||||
| {
|
||||
[k: string]: unknown
|
||||
}
|
||||
| unknown[]
|
||||
| string
|
||||
| number
|
||||
| boolean
|
||||
| null
|
||||
updatedAt: string
|
||||
createdAt: string
|
||||
}
|
||||
export interface PayloadMigration {
|
||||
id: string
|
||||
name?: string
|
||||
batch?: number
|
||||
schema?:
|
||||
| {
|
||||
[k: string]: unknown
|
||||
}
|
||||
| unknown[]
|
||||
| string
|
||||
| number
|
||||
| boolean
|
||||
| null
|
||||
updatedAt: string
|
||||
createdAt: string
|
||||
}
|
||||
|
||||
declare module 'payload' {
|
||||
export interface GeneratedTypes {
|
||||
collections: {
|
||||
users: User
|
||||
'api-keys': ApiKey
|
||||
'public-users': PublicUser
|
||||
'payload-preferences': PayloadPreference
|
||||
'payload-migrations': PayloadMigration
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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,
|
||||
})
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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"
|
||||
],
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user