n8n-nodes-awx
Version:
n8n node to interact with Ansible AWX/Tower with improved type safety
56 lines • 2.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ProjectResources_1 = require("../src/resources/ProjectResources");
jest.mock('../src/ApiClient');
describe('ProjectResources', () => {
let mockApiClient;
let projectResources;
const mockProject = {
id: 1,
name: 'Test Project',
description: 'Test description'
};
beforeEach(() => {
jest.clearAllMocks();
mockApiClient = {
get: jest.fn().mockImplementation((url) => {
if (url === '/api/v2/projects/') {
return Promise.resolve({ data: { results: [mockProject] } });
}
return Promise.resolve({ data: mockProject });
}),
post: jest.fn().mockResolvedValue({ data: mockProject }),
put: jest.fn().mockResolvedValue({ data: mockProject }),
delete: jest.fn().mockResolvedValue(undefined),
};
projectResources = new ProjectResources_1.ProjectResources(mockApiClient);
});
test('list returns projects', async () => {
console.log('Running list test...');
const projects = await projectResources.list();
console.log('Projects:', projects);
expect(projects).toEqual([mockProject]);
expect(mockApiClient.get).toHaveBeenCalledWith('/api/v2/projects/');
console.log('List test passed!');
});
test('get returns project by id', async () => {
const project = await projectResources.get(1);
expect(project).toEqual(mockProject);
expect(mockApiClient.get).toHaveBeenCalledWith('/api/v2/projects/1/');
});
test('create project', async () => {
const project = await projectResources.create({ name: 'New Project' });
expect(project).toEqual(mockProject);
expect(mockApiClient.post).toHaveBeenCalledWith('/api/v2/projects/', { name: 'New Project' });
});
test('update project', async () => {
const project = await projectResources.update(1, { name: 'Updated Project' });
expect(project).toEqual(mockProject);
expect(mockApiClient.put).toHaveBeenCalledWith('/api/v2/projects/1/', { name: 'Updated Project' });
});
test('delete project', async () => {
await projectResources.delete(1);
expect(mockApiClient.delete).toHaveBeenCalledWith('/api/v2/projects/1/');
});
});
//# sourceMappingURL=ProjectResources.test.js.map