NPM module - izara-testing: Difference between revisions

From Izara Wiki
Jump to navigation Jump to search
No edit summary
 
Line 37: Line 37:
  * @param {Object[]} integrationTestTags - can be used to only extract unit tests from the specified integrationTestTags
  * @param {Object[]} integrationTestTags - can be used to only extract unit tests from the specified integrationTestTags
  *
  *
  * @returns {array} array of unit test configuration objects that match the given params
  * @returns {Object[]} array of unit test configuration objects that match the given params
  */
  */
module.exports.getUnitTestConfig = (serviceName, resourceType, resourceName, integrationTestTags = NULL) => {
module.exports.getUnitTestConfig = (serviceName, resourceType, resourceName, integrationTestTags = NULL) => {

Latest revision as of 12:34, 28 November 2020

Overview

Code shared by multiple repositories used for testing, can by npm installed using --save-dev setting, only used in local environments.

The module has the following components:

TestLog

Functions that handle log output from test scripts, including a LOG_LEVEL setting that can be affect which log results are outputted and thisLine which assists outputting debug information such as line number where the log was called from.

IntegrationTestConfig

Build unit tests from Integration Test Config service which must be cloned into the same root directory as the service being tested because config files are linked to using relative paths.

Function - getResourceConfig

/**
 * Get the configuration for one resource
 * @param {string} serviceName - Service name for the resource
 * @param {string} resourceType - Resource type
 * @param {string} resourceName - Name of the resource
 *
 * @returns {object} One resource configuration
 */
module.exports.getResourceConfig = (serviceName, resourceType, resourceName) => {

Function - getUnitTestConfig

/**
 * Extract all matching unit test configurations
 * @param {string} serviceName - Service name for the resource
 * @param {string} resourceType - Resource type
 * @param {string} resourceName - Name of the resource
 * @param {Object[]} integrationTestTags - can be used to only extract unit tests from the specified integrationTestTags
 *
 * @returns {Object[]} array of unit test configuration objects that match the given params
 */
module.exports.getUnitTestConfig = (serviceName, resourceType, resourceName, integrationTestTags = NULL) => {

Function - getEventConfig

/**
 * Get the configuration for one event
 * @param {string} eventTag - Tag of the event required
 *
 * @returns {object} One event configuration
 */
module.exports.getEventConfig = (eventTag) => {

Function - integrationTest..(?need function name)

/**
 * Get the configuration for one event
 * @param {string} ... - ...
 *
 * @returns {object} ...
 */
module.exports.xxxxx = (eventTag) => {

Creates and runs unit tests generated from Integration Test Config service.

Uses a test configuration's invokes property to generate AWSMock for all Lambda functions invoked by the function being tested. Currently when matching a Lambda invoke to an inputEvent is unable to match properties that are objects (or at least an empty object), nor match specific nested properties, job for the future.