Greetings,
I am trying to use multiple mocks in my sentinel test but I can’t get the mocks I added to be used.
Folder setup
enforce-route-table-on-subnet.sentinel
enforce-route-table-on-subnet
mockdata
mock-modules-tfconfig-fail.sentinel (doesn’t get used)
mock-modules-tfconfig-pass.sentinel (doesn’t get used)
mock-modules-tfplan-pass.sentinel (doesn’t get used)
mock-modules-tfplan-fail.sentinel (doesn’t get used)
mock-tfconfig-fail.sentinel (gets used)
mock-tfconfig-pass.sentinel (gets used)
mock-tfplan-fail.sentinel (gets used)
mock-tfplan-pass.sentinel (gets used)
fail.json
{
"modules": {
"tfplan-functions": {
"path": "../../tfplan-functions.sentinel"
},
"tfconfig-functions": {
"path": "../../tfconfig-functions.sentinel"
}
},
"mock": {
"tfplan/v2": "./mockdata/mock-tfplan-fail.sentinel",
"tfconfig/v2": "./mockdata/mock-tfconfig-fail.sentinel",
"tfplan-modules/v2": "./mockdata/mock-modules-tfplan-fail.sentinel",
"tfconfig-modules/v2": "./mockdata/mock-modules-tfconfig-fail.sentinel"
},
"test": {
"main": false
}
}
pass.json
{
"modules": {
"tfplan-functions": {
"path": "../../tfplan-functions.sentinel"
},
"tfconfig-functions": {
"path": "../../tfconfig-functions.sentinel"
}
},
"mock": {
"tfplan/v2": "./mockdata/mock-tfplan-pass.sentinel",
"tfconfig/v2": "./mockdata/mock-tfconfig-pass.sentinel",
"tfplan-modules/v2": "./mockdata/mock-modules-tfplan-pass.sentinel",
"tfconfig-modules/v2": "./mockdata/mock-modules-tfconfig-pass.sentinel"
},
"test": {
"main": true
}
}
$ sentinel test -verbose -run=enforce-route
PASS - enforce-route-table-on-subnet.sentinel
PASS - test/enforce-route-table-on-subnet/fail.json
logs:
azurerm_subnet.subnet1 does not have an associated route table
azurerm_subnet.subnet2 does not have an associated route table
trace:
FALSE - enforce-route-table-on-subnet.sentinel:78:1 - Rule "main"
PASS - test/enforce-route-table-on-subnet/pass.json
logs:
azurerm_subnet.subnet1
module.hub_virtual_network.azurerm_subnet.subnet2
azurerm_subnet.subnet1
module.hub_virtual_network.azurerm_subnet.subnet2
trace:
TRUE - enforce-route-table-on-subnet.sentinel:78:1 - Rule "main"