/** * 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;