Playwright Power Platform Toolkit v0.0.4
Playwright Power Platform Toolkit / ApiTestHelper
Class: ApiTestHelper
Defined in: utils/api-testing.ts:62
API Test Helper for Power Apps and Power Platform
Example
import { test, request } from '@playwright/test';
import { ApiTestHelper } from '@playwright-power-platform/toolkit';
test('API test', async () => {
const apiContext = await request.newContext({
baseURL: 'https://yourorg.crm.dynamics.com',
extraHTTPHeaders: {
'Authorization': `Bearer ${token}`,
},
});
const apiHelper = new ApiTestHelper(apiContext);
const response = await apiHelper.getDataverseRecords('accounts');
await apiHelper.assertStatus(response, 200);
});Constructors
Constructor
new ApiTestHelper(
request,baseUrl?):ApiTestHelper
Defined in: utils/api-testing.ts:72
Create a new API test helper
Parameters
request
APIRequestContext
Playwright API request context
baseUrl?
string
Optional base URL (defaults to ConfigHelper.getBaseUrl())
Returns
ApiTestHelper
Methods
get()
get(
endpoint,options?):Promise<APIResponse>
Defined in: utils/api-testing.ts:91
Make a GET request to Power Apps API
Parameters
endpoint
string
API endpoint path
options?
Optional query parameters
params?
Record<string, string>
Returns
Promise<APIResponse>
API response
Example
const response = await apiHelper.get('/api/apps', {
params: { '$top': '10' }
});post()
post(
endpoint,data):Promise<APIResponse>
Defined in: utils/api-testing.ts:103
Make a POST request to Power Apps API
Parameters
endpoint
string
API endpoint path
data
any
Request body data
Returns
Promise<APIResponse>
API response
patch()
patch(
endpoint,data):Promise<APIResponse>
Defined in: utils/api-testing.ts:115
Make a PATCH request to Power Apps API
Parameters
endpoint
string
API endpoint path
data
any
Request body data
Returns
Promise<APIResponse>
API response
delete()
delete(
endpoint):Promise<APIResponse>
Defined in: utils/api-testing.ts:126
Make a DELETE request to Power Apps API
Parameters
endpoint
string
API endpoint path
Returns
Promise<APIResponse>
API response
assertStatus()
assertStatus(
response,expectedStatus):Promise<void>
Defined in: utils/api-testing.ts:151
Assert API response status
Parameters
response
APIResponse
API response
expectedStatus
number
Expected HTTP status code
Returns
Promise<void>
assertResponseContains()
assertResponseContains(
response,expectedData):Promise<void>
Defined in: utils/api-testing.ts:161
Assert API response contains data
Parameters
response
APIResponse
API response
expectedData
any
Expected data object
Returns
Promise<void>
getDataverseRecords()
getDataverseRecords(
tableName,options?):Promise<APIResponse>
Defined in: utils/api-testing.ts:185
Get Dataverse table records with OData query options
Parameters
tableName
string
Logical name of the table (e.g., ‘accounts’, ‘contacts’)
options?
OData query options
select?
string[]
Fields to select
filter?
string
OData filter expression
top?
number
Number of records to return
Returns
Promise<APIResponse>
API response
Example
const response = await apiHelper.getDataverseRecords('accounts', {
select: ['name', 'accountid'],
filter: "name eq 'Contoso'",
top: 10
});createDataverseRecord()
createDataverseRecord(
tableName,data):Promise<APIResponse>
Defined in: utils/api-testing.ts:223
Create a Dataverse record
Parameters
tableName
string
Logical name of the table
data
any
Record data
Returns
Promise<APIResponse>
API response
Example
const response = await apiHelper.createDataverseRecord('accounts', {
name: 'Contoso Ltd',
telephone1: '555-0100'
});updateDataverseRecord()
updateDataverseRecord(
tableName,recordId,data):Promise<APIResponse>
Defined in: utils/api-testing.ts:235
Update a Dataverse record
Parameters
tableName
string
Logical name of the table
recordId
string
ID of the record to update
data
any
Updated record data
Returns
Promise<APIResponse>
API response
deleteDataverseRecord()
deleteDataverseRecord(
tableName,recordId):Promise<APIResponse>
Defined in: utils/api-testing.ts:251
Delete a Dataverse record
Parameters
tableName
string
Logical name of the table
recordId
string
ID of the record to delete
Returns
Promise<APIResponse>
API response
validateSchema()
validateSchema(
response,schema):Promise<void>
Defined in: utils/api-testing.ts:262
Validate response schema
Parameters
response
APIResponse
API response
schema
Expected schema with required fields
required?
string[]
Returns
Promise<void>
measureResponseTime()
measureResponseTime(
apiCall):Promise<{response:APIResponse;duration:number; }>
Defined in: utils/api-testing.ts:287
Measure API response time
Parameters
apiCall
() => Promise<APIResponse>
Function that makes the API call
Returns
Promise<{ response: APIResponse; duration: number; }>
Response and duration in milliseconds
Example
const { response, duration } = await apiHelper.measureResponseTime(
() => apiHelper.getDataverseRecords('accounts')
);
console.log(`API call took ${duration}ms`);assertPerformance()
assertPerformance(
duration,maxDuration):void
Defined in: utils/api-testing.ts:304
Assert API performance is within threshold
Parameters
duration
number
Actual duration in milliseconds
maxDuration
number
Maximum allowed duration in milliseconds
Returns
void