mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
Add tests for trigger endpoint
This commit is contained in:
parent
7b0ebb9dbf
commit
c9c6f83e65
2 changed files with 54 additions and 3 deletions
|
|
@ -10,7 +10,7 @@ import axios, { Method } from 'axios'
|
|||
export function webhooksServiceRouter() {
|
||||
const router = express.Router()
|
||||
|
||||
router.post('/:action', async (req, res) => {
|
||||
router.post('/trigger/:action', async (req, res) => {
|
||||
console.log('trigger webhook of action', req.params.action)
|
||||
const { message: msgStr, expired } = readPushSubscription(req)
|
||||
|
||||
|
|
@ -38,8 +38,8 @@ export function webhooksServiceRouter() {
|
|||
const eventType = `${type as string}_${req.params.action}`.toUpperCase()
|
||||
const webhooks = await getRepository(Webhook)
|
||||
.createQueryBuilder()
|
||||
.where('userId = :userId', { userId })
|
||||
.andWhere(':eventType = ANY(eventTypes)', { eventType })
|
||||
.where('user_id = :userId', { userId })
|
||||
.andWhere(':eventType = ANY(event_types)', { eventType })
|
||||
.andWhere('enabled = true')
|
||||
.getMany()
|
||||
|
||||
|
|
|
|||
51
packages/api/test/routers/webhooks.test.ts
Normal file
51
packages/api/test/routers/webhooks.test.ts
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
import { createTestUser, deleteTestUser } from '../db'
|
||||
import { request } from '../util'
|
||||
import { User } from '../../src/entity/user'
|
||||
import 'mocha'
|
||||
import { getRepository } from '../../src/entity/utils'
|
||||
import { Webhook } from '../../src/entity/webhook'
|
||||
|
||||
describe('Webhooks Router', () => {
|
||||
const username = 'fakeUser'
|
||||
const token = process.env.PUBSUB_VERIFICATION_TOKEN || ''
|
||||
|
||||
let user: User
|
||||
let webhook: Webhook
|
||||
|
||||
before(async () => {
|
||||
// create test user and login
|
||||
user = await createTestUser(username)
|
||||
await request
|
||||
.post('/local/debug/fake-user-login')
|
||||
.send({ fakeEmail: user.email })
|
||||
|
||||
webhook = await getRepository(Webhook).save({
|
||||
url: 'https://example.com',
|
||||
user: { id: user.id },
|
||||
eventTypes: ['PAGE_CREATED'],
|
||||
})
|
||||
})
|
||||
|
||||
after(async () => {
|
||||
// clean up
|
||||
await deleteTestUser(username)
|
||||
})
|
||||
|
||||
describe('trigger webhooks', () => {
|
||||
it('should trigger webhooks', async () => {
|
||||
const data = {
|
||||
message: {
|
||||
data: Buffer.from(
|
||||
JSON.stringify({ userId: user.id, type: 'page' })
|
||||
).toString('base64'),
|
||||
publishTime: new Date().toISOString(),
|
||||
},
|
||||
}
|
||||
|
||||
await request
|
||||
.post('/svc/pubsub/webhooks/trigger/created?token=' + token)
|
||||
.send(data)
|
||||
.expect(200)
|
||||
})
|
||||
})
|
||||
})
|
||||
Loading…
Reference in a new issue