Something went wrong. Try again.
mirror your GitHub repos to tangled.org automatically synchub.to
mirror sync tangled github git
Something went wrong. Try again.
993 B · 27 lines
TypeScript
12345678910111213141516171819202122232425262728import { sign, verify } from '@octokit/webhooks-methods'import { describe, expect, it } from 'vitest'
describe('github webhook signature verification', () => { const secret = 'test-webhook-secret' const payload = JSON.stringify({ action: 'created', installation: { id: 1 } })
it('accepts a valid signature', async () => { const signature = await sign(secret, payload) expect(await verify(secret, payload, signature)).toBe(true) })
it('rejects a tampered payload', async () => { const signature = await sign(secret, payload) const tampered = payload.replace('"created"', '"deleted"') expect(await verify(secret, tampered, signature)).toBe(false) })
it('rejects a wrong secret', async () => { const signature = await sign(secret, payload) expect(await verify('not-the-secret', payload, signature)).toBe(false) })
it('rejects a malformed signature', async () => { expect(await verify(secret, payload, 'sha256=garbage')).toBe(false) })})