2021-08-26 18:36:11 +00:00
|
|
|
/**
|
|
|
|
* Internal dependencies
|
|
|
|
*/
|
2021-10-14 22:11:59 +00:00
|
|
|
const { HTTPClientFactory } = require( '@woocommerce/api' );
|
2021-08-26 18:36:11 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* 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();
|
|
|
|
} );
|
|
|
|
|
2021-08-26 18:42:00 +00:00
|
|
|
it.each([
|
|
|
|
null,
|
|
|
|
{},
|
|
|
|
{ platform: 'ios' },
|
|
|
|
{ version: '1.1' },
|
|
|
|
])( 'errors for invalid request body - %p', async data => {
|
|
|
|
const response = await client
|
2021-10-13 15:10:03 +00:00
|
|
|
.post( `/wc-telemetry/tracker`, data )
|
2021-08-26 18:36:11 +00:00
|
|
|
.catch( err => {
|
2021-10-14 23:17:50 +00:00
|
|
|
expect( err.response.status ).toBe( 400 );
|
2021-08-26 18:36:11 +00:00
|
|
|
} );
|
2021-08-26 18:42:00 +00:00
|
|
|
|
|
|
|
expect( response ).toBeUndefined();
|
2021-08-26 18:36:11 +00:00
|
|
|
} );
|
|
|
|
|
|
|
|
it( 'returns 200 with correct fields', async () => {
|
|
|
|
const response = await client
|
2021-10-13 15:10:03 +00:00
|
|
|
.post( `/wc-telemetry/tracker`, {
|
2021-08-26 18:36:11 +00:00
|
|
|
platform: 'ios',
|
|
|
|
version: '1.0',
|
|
|
|
})
|
|
|
|
|
2021-10-14 23:17:50 +00:00
|
|
|
expect( response.status ).toBe( 200 );
|
2021-08-26 18:36:11 +00:00
|
|
|
} );
|
|
|
|
} );
|
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = runTelemetryAPITest;
|