Documentation
¶
Index ¶
- func IntegTestCase_IsConstruct(x interface{}) *bool
- func IntegTest_IsConstruct(x interface{}) *bool
- func NewIntegTestCase_Override(i IntegTestCase, scope awscdk.Construct, id *string, props *IntegTestCaseProps)
- func NewIntegTest_Override(i IntegTest, scope awscdk.Construct, id *string, props *IntegTestProps)
- type IntegTest
- type IntegTestCase
- type IntegTestCaseProps
- type IntegTestProps
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IntegTestCase_IsConstruct ¶
func IntegTestCase_IsConstruct(x interface{}) *bool
Return whether the given object is a Construct. Experimental.
func IntegTest_IsConstruct ¶
func IntegTest_IsConstruct(x interface{}) *bool
Return whether the given object is a Construct. Experimental.
func NewIntegTestCase_Override ¶
func NewIntegTestCase_Override(i IntegTestCase, scope awscdk.Construct, id *string, props *IntegTestCaseProps)
Experimental.
func NewIntegTest_Override ¶
func NewIntegTest_Override(i IntegTest, scope awscdk.Construct, id *string, props *IntegTestProps)
Experimental.
Types ¶
type IntegTest ¶
type IntegTest interface { awscdk.Construct // The construct tree node associated with this construct. // Experimental. Node() awscdk.ConstructNode // Perform final modifications before synthesis. // // This method can be implemented by derived constructs in order to perform // final changes before synthesis. prepare() will be called after child // constructs have been prepared. // // This is an advanced framework feature. Only use this if you // understand the implications. // Experimental. OnPrepare() // Allows this construct to emit artifacts into the cloud assembly during synthesis. // // This method is usually implemented by framework-level constructs such as `Stack` and `Asset` // as they participate in synthesizing the cloud assembly. // Experimental. OnSynthesize(session constructs.ISynthesisSession) // Validate the current construct. // // This method can be implemented by derived constructs in order to perform // validation logic. It is called on all constructs before synthesis. // // Returns: An array of validation error messages, or an empty array if the construct is valid. // Experimental. OnValidate() *[]*string // Perform final modifications before synthesis. // // This method can be implemented by derived constructs in order to perform // final changes before synthesis. prepare() will be called after child // constructs have been prepared. // // This is an advanced framework feature. Only use this if you // understand the implications. // Experimental. Prepare() // Allows this construct to emit artifacts into the cloud assembly during synthesis. // // This method is usually implemented by framework-level constructs such as `Stack` and `Asset` // as they participate in synthesizing the cloud assembly. // Experimental. Synthesize(session awscdk.ISynthesisSession) // Returns a string representation of this construct. // Experimental. ToString() *string // Validate the current construct. // // This method can be implemented by derived constructs in order to perform // validation logic. It is called on all constructs before synthesis. // // Returns: An array of validation error messages, or an empty array if the construct is valid. // Experimental. Validate() *[]*string }
A collection of test cases.
Each test case file should contain exactly one instance of this class.
Example:
type stackUnderTestProps struct { stackProps architecture architecture } type stackUnderTest struct { stack } func newStackUnderTest(scope construct, id *string, props stackUnderTestProps) *stackUnderTest { this := &stackUnderTest{} newStack_Override(this, scope, id, props) lambda.NewFunction(this, jsii.String("Handler"), &functionProps{ runtime: lambda.runtime_NODEJS_12_X(), handler: jsii.String("index.handler"), code: lambda.code.fromAsset(path.join(__dirname, jsii.String("lambda-handler"))), architecture: props.architecture, }) return this } // Beginning of the test suite app := NewApp() stack := NewStack(app, jsii.String("stack")) differentArchsCase := NewIntegTestCase(stack, jsii.String("DifferentArchitectures"), &integTestCaseProps{ stacks: []*stack{ NewStackUnderTest(app, jsii.String("Stack1"), &stackUnderTestProps{ architecture: lambda.*architecture_ARM_64(), }), NewStackUnderTest(app, jsii.String("Stack2"), &stackUnderTestProps{ architecture: lambda.*architecture_X86_64(), }), }, }) // There must be exactly one instance of TestCase per file // There must be exactly one instance of TestCase per file NewIntegTest(app, jsii.String("integ-test"), &integTestProps{ // Register as many test cases as you want here testCases: []integTestCase{ differentArchsCase, }, })
Experimental.
func NewIntegTest ¶
func NewIntegTest(scope awscdk.Construct, id *string, props *IntegTestProps) IntegTest
Experimental.
type IntegTestCase ¶
type IntegTestCase interface { awscdk.Construct // The integration test manifest for this test case. // // Manifests are used // by the integration test runner. // Experimental. Manifest() *cloudassemblyschema.IntegManifest // The construct tree node associated with this construct. // Experimental. Node() awscdk.ConstructNode // Perform final modifications before synthesis. // // This method can be implemented by derived constructs in order to perform // final changes before synthesis. prepare() will be called after child // constructs have been prepared. // // This is an advanced framework feature. Only use this if you // understand the implications. // Experimental. OnPrepare() // Allows this construct to emit artifacts into the cloud assembly during synthesis. // // This method is usually implemented by framework-level constructs such as `Stack` and `Asset` // as they participate in synthesizing the cloud assembly. // Experimental. OnSynthesize(session constructs.ISynthesisSession) // Validate the current construct. // // This method can be implemented by derived constructs in order to perform // validation logic. It is called on all constructs before synthesis. // // Returns: An array of validation error messages, or an empty array if the construct is valid. // Experimental. OnValidate() *[]*string // Perform final modifications before synthesis. // // This method can be implemented by derived constructs in order to perform // final changes before synthesis. prepare() will be called after child // constructs have been prepared. // // This is an advanced framework feature. Only use this if you // understand the implications. // Experimental. Prepare() // Allows this construct to emit artifacts into the cloud assembly during synthesis. // // This method is usually implemented by framework-level constructs such as `Stack` and `Asset` // as they participate in synthesizing the cloud assembly. // Experimental. Synthesize(session awscdk.ISynthesisSession) // Returns a string representation of this construct. // Experimental. ToString() *string // Validate the current construct. // // This method can be implemented by derived constructs in order to perform // validation logic. It is called on all constructs before synthesis. // // Returns: An array of validation error messages, or an empty array if the construct is valid. // Experimental. Validate() *[]*string }
An integration test case.
Allows the definition of test properties that apply to all stacks under this case.
Example:
type stackUnderTestProps struct { stackProps architecture architecture } type stackUnderTest struct { stack } func newStackUnderTest(scope construct, id *string, props stackUnderTestProps) *stackUnderTest { this := &stackUnderTest{} newStack_Override(this, scope, id, props) lambda.NewFunction(this, jsii.String("Handler"), &functionProps{ runtime: lambda.runtime_NODEJS_12_X(), handler: jsii.String("index.handler"), code: lambda.code.fromAsset(path.join(__dirname, jsii.String("lambda-handler"))), architecture: props.architecture, }) return this } // Beginning of the test suite app := NewApp() stack := NewStack(app, jsii.String("stack")) differentArchsCase := NewIntegTestCase(stack, jsii.String("DifferentArchitectures"), &integTestCaseProps{ stacks: []*stack{ NewStackUnderTest(app, jsii.String("Stack1"), &stackUnderTestProps{ architecture: lambda.*architecture_ARM_64(), }), NewStackUnderTest(app, jsii.String("Stack2"), &stackUnderTestProps{ architecture: lambda.*architecture_X86_64(), }), }, }) // There must be exactly one instance of TestCase per file // There must be exactly one instance of TestCase per file NewIntegTest(app, jsii.String("integ-test"), &integTestProps{ // Register as many test cases as you want here testCases: []integTestCase{ differentArchsCase, }, })
Experimental.
func NewIntegTestCase ¶
func NewIntegTestCase(scope awscdk.Construct, id *string, props *IntegTestCaseProps) IntegTestCase
Experimental.
type IntegTestCaseProps ¶
type IntegTestCaseProps struct { // List of CloudFormation resource types in this stack that can be destroyed as part of an update without failing the test. // // This list should only include resources that for this specific // integration test we are sure will not cause errors or an outage if // destroyed. For example, maybe we know that a new resource will be created // first before the old resource is destroyed which prevents any outage. // // e.g. ['AWS::IAM::Role'] // Experimental. AllowDestroy *[]*string `json:"allowDestroy" yaml:"allowDestroy"` // Additional options to use for each CDK command. // Experimental. CdkCommandOptions *cloudassemblyschema.CdkCommands `json:"cdkCommandOptions" yaml:"cdkCommandOptions"` // Whether or not to include asset hashes in the diff Asset hashes can introduces a lot of unneccessary noise into tests, but there are some cases where asset hashes _should_ be included. // // For example // any tests involving custom resources or bundling. // Experimental. DiffAssets *bool `json:"diffAssets" yaml:"diffAssets"` // Additional commands to run at predefined points in the test workflow. // // e.g. { postDeploy: ['yarn', 'test'] } // Experimental. Hooks *cloudassemblyschema.Hooks `json:"hooks" yaml:"hooks"` // Limit deployment to these regions. // Experimental. Regions *[]*string `json:"regions" yaml:"regions"` // Run update workflow on this test case This should only be set to false to test scenarios that are not possible to test as part of the update workflow. // Experimental. StackUpdateWorkflow *bool `json:"stackUpdateWorkflow" yaml:"stackUpdateWorkflow"` // Stacks to be deployed during the test. // Experimental. Stacks *[]awscdk.Stack `json:"stacks" yaml:"stacks"` }
Properties of an integration test case.
Example:
type stackUnderTestProps struct { stackProps architecture architecture } type stackUnderTest struct { stack } func newStackUnderTest(scope construct, id *string, props stackUnderTestProps) *stackUnderTest { this := &stackUnderTest{} newStack_Override(this, scope, id, props) lambda.NewFunction(this, jsii.String("Handler"), &functionProps{ runtime: lambda.runtime_NODEJS_12_X(), handler: jsii.String("index.handler"), code: lambda.code.fromAsset(path.join(__dirname, jsii.String("lambda-handler"))), architecture: props.architecture, }) return this } // Beginning of the test suite app := NewApp() stack := NewStack(app, jsii.String("stack")) differentArchsCase := NewIntegTestCase(stack, jsii.String("DifferentArchitectures"), &integTestCaseProps{ stacks: []*stack{ NewStackUnderTest(app, jsii.String("Stack1"), &stackUnderTestProps{ architecture: lambda.*architecture_ARM_64(), }), NewStackUnderTest(app, jsii.String("Stack2"), &stackUnderTestProps{ architecture: lambda.*architecture_X86_64(), }), }, }) // There must be exactly one instance of TestCase per file // There must be exactly one instance of TestCase per file NewIntegTest(app, jsii.String("integ-test"), &integTestProps{ // Register as many test cases as you want here testCases: []integTestCase{ differentArchsCase, }, })
Experimental.
type IntegTestProps ¶
type IntegTestProps struct { // List of test cases that make up this test. // Experimental. TestCases *[]IntegTestCase `json:"testCases" yaml:"testCases"` }
Integration test properties.
Example:
type stackUnderTestProps struct { stackProps architecture architecture } type stackUnderTest struct { stack } func newStackUnderTest(scope construct, id *string, props stackUnderTestProps) *stackUnderTest { this := &stackUnderTest{} newStack_Override(this, scope, id, props) lambda.NewFunction(this, jsii.String("Handler"), &functionProps{ runtime: lambda.runtime_NODEJS_12_X(), handler: jsii.String("index.handler"), code: lambda.code.fromAsset(path.join(__dirname, jsii.String("lambda-handler"))), architecture: props.architecture, }) return this } // Beginning of the test suite app := NewApp() stack := NewStack(app, jsii.String("stack")) differentArchsCase := NewIntegTestCase(stack, jsii.String("DifferentArchitectures"), &integTestCaseProps{ stacks: []*stack{ NewStackUnderTest(app, jsii.String("Stack1"), &stackUnderTestProps{ architecture: lambda.*architecture_ARM_64(), }), NewStackUnderTest(app, jsii.String("Stack2"), &stackUnderTestProps{ architecture: lambda.*architecture_X86_64(), }), }, }) // There must be exactly one instance of TestCase per file // There must be exactly one instance of TestCase per file NewIntegTest(app, jsii.String("integ-test"), &integTestProps{ // Register as many test cases as you want here testCases: []integTestCase{ differentArchsCase, }, })
Experimental.
Click to show internal directories.
Click to hide internal directories.