mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
add test cases
This commit is contained in:
parent
5f5423ddcb
commit
dddb51f7d5
3 changed files with 67 additions and 3 deletions
|
|
@ -2,6 +2,7 @@ import * as httpContext from 'express-http-context2'
|
|||
import { EntityManager, EntityTarget, Repository } from 'typeorm'
|
||||
import { appDataSource } from '../data_source'
|
||||
import { Claims } from '../resolvers/types'
|
||||
import { SetClaimsRole } from '../utils/dictionary'
|
||||
|
||||
export const getColumns = <T>(repository: Repository<T>): (keyof T)[] => {
|
||||
return repository.metadata.columns.map(
|
||||
|
|
@ -12,8 +13,10 @@ export const getColumns = <T>(repository: Repository<T>): (keyof T)[] => {
|
|||
export const setClaims = async (
|
||||
manager: EntityManager,
|
||||
uid = '00000000-0000-0000-0000-000000000000',
|
||||
dbRole = 'omnivore_user'
|
||||
userRole = 'user'
|
||||
): Promise<unknown> => {
|
||||
const dbRole =
|
||||
userRole === SetClaimsRole.ADMIN ? 'omnivore_admin' : 'omnivore_user'
|
||||
return manager.query('SELECT * from omnivore.set_claims($1, $2)', [
|
||||
uid,
|
||||
dbRole,
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import {
|
|||
UpdateUserProfileErrorCode,
|
||||
} from '../../src/generated/graphql'
|
||||
import { findProfile } from '../../src/services/profile'
|
||||
import { deleteUser, findUser } from '../../src/services/user'
|
||||
import { deleteUser, findActiveUser } from '../../src/services/user'
|
||||
import { hashPassword } from '../../src/utils/auth'
|
||||
import { createTestUser } from '../db'
|
||||
import { generateFakeUuid, graphqlRequest, request } from '../util'
|
||||
|
|
@ -98,7 +98,7 @@ describe('User API', () => {
|
|||
|
||||
it('updates user and responds with status code 200', async () => {
|
||||
const response = await graphqlRequest(query, authToken).expect(200)
|
||||
const user = await findUser(response.body.data.updateUser.user.id)
|
||||
const user = await findActiveUser(response.body.data.updateUser.user.id)
|
||||
expect(user?.name).to.eql(name)
|
||||
})
|
||||
})
|
||||
|
|
|
|||
61
packages/api/test/routers/user.test.ts
Normal file
61
packages/api/test/routers/user.test.ts
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
import { expect } from 'chai'
|
||||
import 'mocha'
|
||||
import { In } from 'typeorm'
|
||||
import { StatusType } from '../../src/entity/user'
|
||||
import {
|
||||
createUsers,
|
||||
deleteUsers,
|
||||
findUsersById,
|
||||
} from '../../src/services/user'
|
||||
import { request } from '../util'
|
||||
|
||||
describe('User Service Router', () => {
|
||||
const token = process.env.PUBSUB_VERIFICATION_TOKEN || ''
|
||||
|
||||
describe('cleanup', () => {
|
||||
let toDeleteUserIds: string[] = []
|
||||
|
||||
before(async () => {
|
||||
// create test users
|
||||
const users = await createUsers([
|
||||
{
|
||||
name: 'user_1',
|
||||
email: 'user_1@omnivore.app',
|
||||
status: StatusType.Deleted,
|
||||
updatedAt: new Date(Date.now() - 1000 * 60 * 60 * 24 * 2), // 2 days ago
|
||||
},
|
||||
{
|
||||
name: 'user_2',
|
||||
email: 'user_2@omnivore.app',
|
||||
status: StatusType.Deleted,
|
||||
updatedAt: new Date(Date.now() - 1000 * 60 * 60 * 24 * 2), // 2 days ago
|
||||
},
|
||||
])
|
||||
toDeleteUserIds = users.map((u) => u.id)
|
||||
})
|
||||
|
||||
after(async () => {
|
||||
// delete test users
|
||||
await deleteUsers({ id: In(toDeleteUserIds) })
|
||||
})
|
||||
|
||||
it('deletes soft deleted users a day ago', async () => {
|
||||
const data = {
|
||||
message: {
|
||||
data: Buffer.from(
|
||||
JSON.stringify({ subDays: 1 }) // 1 day ago
|
||||
).toString('base64'),
|
||||
publishTime: new Date().toISOString(),
|
||||
},
|
||||
}
|
||||
|
||||
await request
|
||||
.post('/api/user/cleanup?token=' + token)
|
||||
.send(data)
|
||||
.expect(200)
|
||||
|
||||
const deletedUsers = await findUsersById(toDeleteUserIds)
|
||||
expect(deletedUsers.length).to.equal(0)
|
||||
})
|
||||
})
|
||||
})
|
||||
Loading…
Reference in a new issue