fix typescript and lint after rebase

This commit is contained in:
Robert Schäfer 2025-06-11 21:27:50 +08:00
parent 77e2b5ec20
commit fc16c05282
6 changed files with 42 additions and 93 deletions

View File

@ -1,52 +0,0 @@
import type CONFIG from '.'
export const TEST_CONFIG: typeof CONFIG = {
NODE_ENV: 'test',
DEBUG: undefined,
TEST: true,
PRODUCTION: false,
PRODUCTION_DB_CLEAN_ALLOW: false,
DISABLED_MIDDLEWARES: [],
SEND_MAIL: false,
CLIENT_URI: 'http://localhost:3000',
GRAPHQL_URI: 'http://localhost:4000',
JWT_EXPIRES: '2y',
MAPBOX_TOKEN: undefined,
JWT_SECRET: undefined,
PRIVATE_KEY_PASSPHRASE: undefined,
NEO4J_URI: 'bolt://localhost:7687',
NEO4J_USERNAME: 'neo4j',
NEO4J_PASSWORD: 'neo4j',
SENTRY_DSN_BACKEND: undefined,
COMMIT: undefined,
REDIS_DOMAIN: undefined,
REDIS_PORT: undefined,
REDIS_PASSWORD: undefined,
AWS_ACCESS_KEY_ID: 'AWS_ACCESS_KEY_ID',
AWS_SECRET_ACCESS_KEY: 'AWS_SECRET_ACCESS_KEY',
AWS_ENDPOINT: 'AWS_ENDPOINT',
AWS_REGION: 'AWS_REGION',
AWS_BUCKET: 'AWS_BUCKET',
S3_PUBLIC_GATEWAY: undefined,
IMAGOR_SECRET: undefined,
EMAIL_DEFAULT_SENDER: '',
SUPPORT_EMAIL: '',
SUPPORT_URL: '',
APPLICATION_NAME: '',
ORGANIZATION_URL: '',
PUBLIC_REGISTRATION: false,
INVITE_REGISTRATION: true,
INVITE_CODES_PERSONAL_PER_USER: 7,
INVITE_CODES_GROUP_PER_USER: 7,
CATEGORIES_ACTIVE: false,
MAX_PINNED_POSTS: 1,
LANGUAGE_DEFAULT: 'en',
}

View File

@ -1,5 +1,3 @@
import { TEST_CONFIG } from '@src/config/test-mock'
import ImageResolver from './images'
describe('Image', () => {
@ -8,7 +6,6 @@ describe('Image', () => {
const Location =
'https://fsn1.your-objectstorage.com/ocelot-social-staging/original/f965ea15-1f6b-43aa-a535-927410e2585e-dsc02586.jpg'
const defaultConfig = {
...TEST_CONFIG,
AWS_ENDPOINT: 'https://fsn1.your-objectstorage.com',
S3_PUBLIC_GATEWAY: 'https://your-public-gateway.com',
IMAGOR_SECRET: 'IMAGOR_SECRET',

View File

@ -1,7 +1,7 @@
import crypto from 'node:crypto'
import { join as joinPath } from 'node:path/posix'
import type { Context } from '@src/server'
import type { Config } from '@src/config'
import Resolver from './helpers/Resolver'
@ -10,7 +10,7 @@ type UrlResolver = (
args: { width?: number; height?: number },
{
config: { S3_PUBLIC_GATEWAY },
}: Pick<Context, 'config'>,
}: { config: Pick<Config, 'IMAGOR_SECRET' | 'S3_PUBLIC_GATEWAY' | 'AWS_ENDPOINT'> },
) => string
const changeDomain: (opts: { transformations: UrlResolver[] }) => UrlResolver =

View File

@ -1,38 +1,38 @@
/* eslint-disable @typescript-eslint/no-unsafe-call */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
import { createTestClient } from 'apollo-server-testing'
import databaseContext from '@context/database'
/* eslint-disable @typescript-eslint/no-explicit-any */
import Factory, { cleanDatabase } from '@db/factories'
import { createMessageMutation } from '@graphql/queries/createMessageMutation'
import { createRoomMutation } from '@graphql/queries/createRoomMutation'
import { roomQuery } from '@graphql/queries/roomQuery'
import { unreadRoomsQuery } from '@graphql/queries/unreadRoomsQuery'
import { TEST_CONFIG } from '@src/config/test-mock'
import createServer, { getContext } from '@src/server'
import type { ApolloTestSetup } from '@root/test/helpers'
import { createApolloTestSetup } from '@root/test/helpers'
import type { Context } from '@src/context'
let query
let mutate
let authenticatedUser
let chattingUser, otherChattingUser, notChattingUser
const database = databaseContext()
let authenticatedUser: Context['user']
const context = () => ({ authenticatedUser })
let mutate: ApolloTestSetup['mutate']
let query: ApolloTestSetup['query']
let database: ApolloTestSetup['database']
let server: ApolloTestSetup['server']
beforeAll(async () => {
await cleanDatabase()
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
const contextUser = (_req) => authenticatedUser
const context = getContext({ user: contextUser, database, config: TEST_CONFIG })
const { server } = createServer({ context })
query = createTestClient(server).query
mutate = createTestClient(server).mutate
beforeAll(() => {
const apolloSetup = createApolloTestSetup({ context })
mutate = apolloSetup.mutate
query = apolloSetup.query
database = apolloSetup.database
server = apolloSetup.server
})
afterAll(async () => {
await cleanDatabase()
await database.driver.close()
void server.stop()
void database.driver.close()
database.neode.close()
})
describe('Room', () => {
@ -125,13 +125,13 @@ describe('Room', () => {
userId: 'other-chatting-user',
},
})
roomId = result.data.CreateRoom.id
roomId = (result as any).data.CreateRoom.id
expect(result).toMatchObject({
errors: undefined,
data: {
CreateRoom: {
id: expect.any(String),
roomId: result.data.CreateRoom.id,
roomId: (result as any).data.CreateRoom.id,
roomName: 'Other Chatting User',
unreadCount: 0,
users: expect.arrayContaining([
@ -207,7 +207,7 @@ describe('Room', () => {
Room: [
{
id: expect.any(String),
roomId: result.data.Room[0].id,
roomId: (result as any).data.Room[0].id,
roomName: 'Other Chatting User',
users: expect.arrayContaining([
{
@ -247,7 +247,7 @@ describe('Room', () => {
Room: [
{
id: expect.any(String),
roomId: result.data.Room[0].id,
roomId: (result as any).data.Room[0].id,
roomName: 'Chatting User',
unreadCount: 0,
users: expect.arrayContaining([
@ -317,7 +317,7 @@ describe('Room', () => {
userId: 'not-chatting-user',
},
})
otherRoomId = result.data.CreateRoom.roomId
otherRoomId = (result as any).data.CreateRoom.roomId
await mutate({
mutation: createMessageMutation(),
variables: {
@ -346,7 +346,7 @@ describe('Room', () => {
userId: 'not-chatting-user',
},
})
otherRoomId = result2.data.CreateRoom.roomId
otherRoomId = (result2 as any).data.CreateRoom.roomId
await mutate({
mutation: createMessageMutation(),
variables: {
@ -583,7 +583,6 @@ describe('Room', () => {
})
describe('query single room', () => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
let result: any = null
beforeAll(async () => {

View File

@ -7,19 +7,16 @@
import { createTestClient } from 'apollo-server-testing'
import gql from 'graphql-tag'
import databaseContext from '@context/database'
import Factory, { cleanDatabase } from '@db/factories'
import { getNeode } from '@db/neo4j'
import { TEST_CONFIG } from '@src/config/test-mock'
import createServer, { getContext } from '@src/server'
import { getNeode, getDriver } from '@db/neo4j'
import createServer from '@src/server'
const neode = getNeode()
const driver = getDriver()
const categoryIds = ['cat9']
let query, graphqlQuery, authenticatedUser, user, moderator, troll
const database = databaseContext()
const action = () => {
return query({ query: graphqlQuery })
}
@ -139,9 +136,15 @@ beforeAll(async () => {
),
])
const contextUser = async (_req) => authenticatedUser
const context = getContext({ user: contextUser, database, config: TEST_CONFIG })
const { server } = createServer({ context })
const { server } = createServer({
context: () => {
return {
driver,
neode,
user: authenticatedUser,
}
},
})
const client = createTestClient(server)
query = client.query
@ -199,7 +202,7 @@ beforeAll(async () => {
afterAll(async () => {
await cleanDatabase()
void database.driver.close()
await driver.close()
})
describe('softDeleteMiddleware', () => {

View File

@ -54,6 +54,8 @@ export const TEST_CONFIG = {
MAX_PINNED_POSTS: 1,
LANGUAGE_DEFAULT: 'en',
IMAGOR_SECRET: undefined,
} as const satisfies typeof CONFIG
interface OverwritableContextParams {