Skip to main content

Testing Your Client Application

Testing Your Client Application

Unit Testing with Mock API

// mockApiClient.js
export const createMockClient = () => ({
getObjects: jest.fn().mockResolvedValue([
{ elementIds: ['1'], typeId: 'Machine', displayName: 'Machine A' }
]),

getObjectValue: jest.fn().mockResolvedValue({
elementIds: ['1'],
value: 100,
timestamp: '2025-01-15T12:00:00Z',
quality: 'Good'
})
});

// test.spec.js
import { createMockClient } from './mockApiClient';

test('should fetch objects successfully', async () => {
const client = createMockClient();
const objects = await client.getObjects();

expect(objects).toHaveLength(1);
expect(objects[0].displayName).toBe('Machine A');
});

Integration Testing

describe('i3X API Integration', () => {
let client;
let testElementId;

beforeAll(async () => {
client = new I3XAPIClient({
baseUrl: process.env.TEST_API_URL,
credentials: {
username: process.env.TEST_USERNAME,
password: process.env.TEST_PASSWORD
}
});

// Get a test object
const objects = await client.getObjects();
testElementId = objects[0].elementId;
});

test('should read object value', async () => {
const value = await client.getObjectValue(testElementId);
expect(value).toBeDefined();
expect(value.elementId).toBe(testElementId);
});
});