En savoir plus sur le dossier test test-folder
Le dossier test de cet exemple d’application contient un seul fichier JavaScript, qui est utilisé lors de l’exécution de tests unitaires sur l’application.
Il s’agit d’un exemple simple qui peut être étendu pour créer des tests complets pour vos applications spécifiques.
À qui s'adresse cette vidéo ?
- Développeurs peu familiers avec Adobe Commerce et peu expérimentés avec Adobe App Builder qui souhaitent en savoir plus sur le dossier
test.
Contenu vidéo
- Pourquoi utiliser le dossier
test? - Brève explication du fichier de test unitaire et de ses composants
- Présentation des tests de bout en bout
Exemples de code
test/utils.test.js
/*
* <license header>
*/
const utils = require('./../actions/utils.js')
test('interface', () => {
expect(typeof utils.errorResponse).toBe('function')
expect(typeof utils.stringParameters).toBe('function')
expect(typeof utils.checkMissingRequestInputs).toBe('function')
expect(typeof utils.getBearerToken).toBe('function')
})
describe('errorResponse', () => {
test('(400, errorMessage)', () => {
const res = utils.errorResponse(400, 'errorMessage')
expect(res).toEqual({
error: {
statusCode: 400,
body: { error: 'errorMessage' }
}
})
})
test('(400, errorMessage, logger)', () => {
const logger = {
info: jest.fn()
}
const res = utils.errorResponse(400, 'errorMessage', logger)
expect(logger.info).toHaveBeenCalledWith('400: errorMessage')
expect(res).toEqual({
error: {
statusCode: 400,
body: { error: 'errorMessage' }
}
})
})
})
describe('stringParameters', () => {
test('no auth header', () => {
const params = {
a: 1, b: 2, __ow_headers: { 'x-api-key': 'fake-api-key' }
}
expect(utils.stringParameters(params)).toEqual(JSON.stringify(params))
})
test('with auth header', () => {
const params = {
a: 1, b: 2, __ow_headers: { 'x-api-key': 'fake-api-key', authorization: 'secret' }
}
expect(utils.stringParameters(params)).toEqual(expect.stringContaining('"authorization":"<hidden>"'))
expect(utils.stringParameters(params)).not.toEqual(expect.stringContaining('secret'))
})
})
describe('checkMissingRequestInputs', () => {
test('({ a: 1, b: 2 }, [a])', () => {
expect(utils.checkMissingRequestInputs({ a: 1, b: 2 }, ['a'])).toEqual(null)
})
test('({ a: 1 }, [a, b])', () => {
expect(utils.checkMissingRequestInputs({ a: 1 }, ['a', 'b'])).toEqual('missing parameter(s) \'b\'')
})
test('({ a: { b: { c: 1 } }, f: { g: 2 } }, [a.b.c, f.g.h.i])', () => {
expect(utils.checkMissingRequestInputs({ a: { b: { c: 1 } }, f: { g: 2 } }, ['a.b.c', 'f.g.h.i'])).toEqual('missing parameter(s) \'f.g.h.i\'')
})
test('({ a: { b: { c: 1 } }, f: { g: 2 } }, [a.b.c, f.g.h])', () => {
expect(utils.checkMissingRequestInputs({ a: { b: { c: 1 } }, f: { g: 2 } }, ['a.b.c', 'f'])).toEqual(null)
})
test('({ a: 1, __ow_headers: { h: 1, i: 2 } }, undefined, [h])', () => {
expect(utils.checkMissingRequestInputs({ a: 1, __ow_headers: { h: 1, i: 2 } }, undefined, ['h'])).toEqual(null)
})
test('({ a: 1, __ow_headers: { f: 2 } }, [a], [h, i])', () => {
expect(utils.checkMissingRequestInputs({ a: 1, __ow_headers: { f: 2 } }, ['a'], ['h', 'i'])).toEqual('missing header(s) \'h,i\'')
})
test('({ c: 1, __ow_headers: { f: 2 } }, [a, b], [h, i])', () => {
expect(utils.checkMissingRequestInputs({ c: 1 }, ['a', 'b'], ['h', 'i'])).toEqual('missing header(s) \'h,i\' and missing parameter(s) \'a,b\'')
})
test('({ a: 0 }, [a])', () => {
expect(utils.checkMissingRequestInputs({ a: 0 }, ['a'])).toEqual(null)
})
test('({ a: null }, [a])', () => {
expect(utils.checkMissingRequestInputs({ a: null }, ['a'])).toEqual(null)
})
test('({ a: \'\' }, [a])', () => {
expect(utils.checkMissingRequestInputs({ a: '' }, ['a'])).toEqual('missing parameter(s) \'a\'')
})
test('({ a: undefined }, [a])', () => {
expect(utils.checkMissingRequestInputs({ a: undefined }, ['a'])).toEqual('missing parameter(s) \'a\'')
})
})
describe('getBearerToken', () => {
test('({})', () => {
expect(utils.getBearerToken({})).toEqual(undefined)
})
test('({ authorization: Bearer fake, __ow_headers: {} })', () => {
expect(utils.getBearerToken({ authorization: 'Bearer fake', __ow_headers: {} })).toEqual(undefined)
})
test('({ authorization: Bearer fake, __ow_headers: { authorization: fake } })', () => {
expect(utils.getBearerToken({ authorization: 'Bearer fake', __ow_headers: { authorization: 'fake' } })).toEqual(undefined)
})
test('({ __ow_headers: { authorization: Bearerfake} })', () => {
expect(utils.getBearerToken({ __ow_headers: { authorization: 'Bearerfake' } })).toEqual(undefined)
})
test('({ __ow_headers: { authorization: Bearer fake} })', () => {
expect(utils.getBearerToken({ __ow_headers: { authorization: 'Bearer fake' } })).toEqual('fake')
})
test('({ __ow_headers: { authorization: Bearer fake Bearer fake} })', () => {
expect(utils.getBearerToken({ __ow_headers: { authorization: 'Bearer fake Bearer fake' } })).toEqual('fake Bearer fake')
})
})
App Builder - Création des pages relatives à votre première application
recommendation-more-help
3a5f7e19-f383-4af8-8983-d01154c1402f