-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test(api): added testing for delete and patch
- Loading branch information
Showing
5 changed files
with
141 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
import fetchMock from 'fetch-mock' | ||
import { createMocks } from 'node-mocks-http' | ||
import { afterEach, describe, expect, it, vi } from 'vitest' | ||
import deleteRepo from './delete' | ||
|
||
describe('DELETE /api/github/repo', () => { | ||
afterEach(() => { | ||
fetchMock.reset() | ||
}) | ||
|
||
it('should create octokit DELETE repo request', async () => { | ||
const { req } = createMocks() | ||
req.json = vi.fn().mockResolvedValue({ | ||
full_name: 'kilip/testing', | ||
}) | ||
|
||
fetchMock.delete( | ||
{ | ||
url: 'path:/repos/kilip/testing', | ||
}, | ||
204 | ||
) | ||
|
||
const response = await deleteRepo(req) | ||
|
||
expect(response.ok).toBeTruthy() | ||
}) | ||
|
||
it('should handle octokit response error', async () => { | ||
const { req } = createMocks() | ||
req.json = vi.fn().mockResolvedValue({ | ||
full_name: 'kilip/testing', | ||
}) | ||
|
||
fetchMock.delete( | ||
{ | ||
url: 'path:/repos/kilip/testing', | ||
}, | ||
() => { | ||
throw new Error('test error') | ||
} | ||
) | ||
|
||
const response = await deleteRepo(req) | ||
|
||
expect(response.ok).toBeFalsy() | ||
expect(response.status).toBe(500) | ||
}) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,23 @@ | ||
import { createOctokit } from '../octokit'; | ||
import { NextRequest, NextResponse } from 'next/server'; | ||
import { createOctokit } from '../octokit' | ||
import { NextRequest, NextResponse } from 'next/server' | ||
|
||
export default async function deleteRepo(req: NextRequest){ | ||
try{ | ||
export default async function deleteRepo(req: NextRequest) { | ||
try { | ||
const octokit = await createOctokit(req) | ||
const params = await req.json() | ||
|
||
const [owner,name] = params.full_name.split('/') | ||
const [owner, name] = params.full_name.split('/') | ||
const response = await octokit.repos.delete({ | ||
owner, | ||
repo: name | ||
}) | ||
return NextResponse.json(response, {status: response.status}) | ||
}catch(e: any){ | ||
return NextResponse.json({error: e}, { | ||
status: e.status, | ||
repo: name, | ||
}) | ||
return NextResponse.json({ ...response }, { status: response.status }) | ||
} catch (e: any) { | ||
return NextResponse.json( | ||
{ error: e }, | ||
{ | ||
status: e.status, | ||
} | ||
) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
import fetchMock from 'fetch-mock' | ||
import { createMocks } from 'node-mocks-http' | ||
import { afterEach, describe, expect, it, vi } from 'vitest' | ||
import { patch } from './patch' | ||
|
||
describe('PATCH /api/github/repo', () => { | ||
afterEach(() => { | ||
fetchMock.reset() | ||
}) | ||
|
||
it('should make octokit patch requests', async () => { | ||
const expected = { name: 'testing' } | ||
const payload = { | ||
owner: 'kilip', | ||
repo: 'testing', | ||
archived: true, | ||
} | ||
const { req } = createMocks() | ||
req.json = vi.fn().mockResolvedValue(payload) | ||
|
||
fetchMock.patch( | ||
{ | ||
url: 'path:/repos/kilip/testing', | ||
body: { archived: true }, | ||
}, | ||
{ | ||
body: expected, | ||
} | ||
) | ||
|
||
const response = await patch(req) | ||
|
||
const json = await response.json() | ||
|
||
expect(json.data).toEqual(expected) | ||
}) | ||
|
||
it('should handle octokit error response', async () => { | ||
const payload = { | ||
owner: 'kilip', | ||
repo: 'testing', | ||
archived: true, | ||
} | ||
const { req } = createMocks() | ||
req.json = vi.fn().mockResolvedValue(payload) | ||
|
||
fetchMock.patch( | ||
{ | ||
url: 'path:/repos/kilip/testing', | ||
body: { archived: true }, | ||
}, | ||
() => { | ||
throw new Error('test error') | ||
} | ||
) | ||
|
||
const response = await patch(req) | ||
const json = await response.json() | ||
|
||
expect(response.ok).toBeFalsy() | ||
expect(response.status).toBe(500) | ||
expect(json.error.name).toEqual('HttpError') | ||
}) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,19 @@ | ||
import { createOctokit } from '../octokit'; | ||
import { NextRequest, NextResponse } from 'next/server'; | ||
import { GitHubPatchRepoParams } from '../types'; | ||
import { createOctokit } from '../octokit' | ||
import { NextRequest, NextResponse } from 'next/server' | ||
import { GitHubPatchRepoParams } from '../types' | ||
|
||
export async function patch(req: NextRequest){ | ||
try{ | ||
export async function patch(req: NextRequest) { | ||
try { | ||
const octokit = await createOctokit(req) | ||
const params: GitHubPatchRepoParams = await req.json() | ||
const response = await octokit.repos.update(params) | ||
return NextResponse.json(response, {status: response.status}) | ||
}catch(e: any){ | ||
return NextResponse.json({error: e}, { | ||
status: e.status, | ||
}) | ||
return NextResponse.json(response, { status: response.status }) | ||
} catch (e: any) { | ||
return NextResponse.json( | ||
{ error: e }, | ||
{ | ||
status: e.status, | ||
} | ||
) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters