chore: add integration tests for import/save route regression coverage
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
||||
import { cancelNPMImport } from '../npmImport';
|
||||
import { uploadNPMExport, commitNPMImport, cancelNPMImport } from '../npmImport';
|
||||
import client from '../client';
|
||||
|
||||
vi.mock('../client', () => ({
|
||||
@@ -26,6 +26,67 @@ describe('npmImport API', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('uploadNPMExport posts upload endpoint with content payload', async () => {
|
||||
const content = '{"proxy_hosts":[]}';
|
||||
const mockResponse = {
|
||||
session: {
|
||||
id: 'npm-session-456',
|
||||
state: 'reviewing',
|
||||
source: 'npm',
|
||||
},
|
||||
preview: {
|
||||
hosts: [],
|
||||
conflicts: [],
|
||||
errors: [],
|
||||
},
|
||||
conflict_details: {},
|
||||
};
|
||||
|
||||
mockedPost.mockResolvedValue({ data: mockResponse });
|
||||
|
||||
const result = await uploadNPMExport(content);
|
||||
|
||||
expect(client.post).toHaveBeenCalledWith('/import/npm/upload', { content });
|
||||
expect(result).toEqual(mockResponse);
|
||||
});
|
||||
|
||||
it('commitNPMImport posts commit endpoint with session_uuid, resolutions, and names body', async () => {
|
||||
const sessionUUID = 'npm-session-789';
|
||||
const resolutions = { 'npm.example.com': 'replace' };
|
||||
const names = { 'npm.example.com': 'NPM Example' };
|
||||
const mockResponse = {
|
||||
created: 1,
|
||||
updated: 1,
|
||||
skipped: 0,
|
||||
errors: [],
|
||||
};
|
||||
|
||||
mockedPost.mockResolvedValue({ data: mockResponse });
|
||||
|
||||
const result = await commitNPMImport(sessionUUID, resolutions, names);
|
||||
|
||||
expect(client.post).toHaveBeenCalledWith('/import/npm/commit', {
|
||||
session_uuid: sessionUUID,
|
||||
resolutions,
|
||||
names,
|
||||
});
|
||||
expect(result).toEqual(mockResponse);
|
||||
});
|
||||
|
||||
it('forwards uploadNPMExport errors', async () => {
|
||||
const error = new Error('upload failed');
|
||||
mockedPost.mockRejectedValue(error);
|
||||
|
||||
await expect(uploadNPMExport('{"proxy_hosts":[]}')).rejects.toBe(error);
|
||||
});
|
||||
|
||||
it('forwards commitNPMImport errors', async () => {
|
||||
const error = new Error('commit failed');
|
||||
mockedPost.mockRejectedValue(error);
|
||||
|
||||
await expect(commitNPMImport('npm-session-123', {}, {})).rejects.toBe(error);
|
||||
});
|
||||
|
||||
it('forwards cancelNPMImport errors', async () => {
|
||||
const error = new Error('cancel failed');
|
||||
mockedPost.mockRejectedValue(error);
|
||||
|
||||
Reference in New Issue
Block a user