54 lines
1.2 KiB
JavaScript
54 lines
1.2 KiB
JavaScript
/**
|
|
* Internal dependencies
|
|
*/
|
|
const { HTTPClientFactory } = require( '@woocommerce/api' );
|
|
|
|
/**
|
|
* External dependencies
|
|
*/
|
|
const config = require( 'config' );
|
|
const { it, describe, beforeAll } = require( '@jest/globals' );
|
|
|
|
/**
|
|
* Create the default coupon and tests interactions with it via the API.
|
|
*/
|
|
const runTelemetryAPITest = () => {
|
|
describe( 'REST API > Telemetry', () => {
|
|
let client;
|
|
|
|
beforeAll( async () => {
|
|
const admin = config.get( 'users.admin' );
|
|
const url = config.get( 'url' );
|
|
|
|
client = HTTPClientFactory.build( url )
|
|
.withBasicAuth( admin.username, admin.password )
|
|
.withIndexPermalinks()
|
|
.create();
|
|
} );
|
|
|
|
it.each( [ null, {}, { platform: 'ios' }, { version: '1.1' } ] )(
|
|
'errors for invalid request body - %p',
|
|
async ( data ) => {
|
|
const response = await client
|
|
.post( `/wc-telemetry/tracker`, data )
|
|
.catch( ( err ) => {
|
|
expect( err.statusCode ).toBe( 400 );
|
|
} );
|
|
|
|
expect( response ).toBeUndefined();
|
|
}
|
|
);
|
|
|
|
it( 'returns 200 with correct fields', async () => {
|
|
const response = await client.post( `/wc-telemetry/tracker`, {
|
|
platform: 'ios',
|
|
version: '1.0',
|
|
} );
|
|
|
|
expect( response.statusCode ).toBe( 200 );
|
|
} );
|
|
} );
|
|
};
|
|
|
|
module.exports = runTelemetryAPITest;
|