{"_id":"@anthony-c-martin/bicep-testing","_rev":"7-626cd7f8c90d2042d4f29b1beeaf3c02","name":"@anthony-c-martin/bicep-testing","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.0":{"name":"@anthony-c-martin/bicep-testing","version":"0.1.0","keywords":["bicep"],"author":{"name":"Anthony Martin"},"license":"MIT","_id":"@anthony-c-martin/bicep-testing@0.1.0","maintainers":[{"name":"anthony-c-martin","email":"anthony.ct.martin@gmail.com"}],"homepage":"https://github.com/anthony-c-martin/bicep-testing#readme","bugs":{"url":"https://github.com/anthony-c-martin/bicep-testing/issues"},"dist":{"shasum":"93121cbf4d5cbc31cbdf280eca65023bf2946261","tarball":"https://registry.npmjs.org/@anthony-c-martin/bicep-testing/-/bicep-testing-0.1.0.tgz","fileCount":6,"integrity":"sha512-eJbvcYH9Bsz4nLCf1YF+OFXuGy9d8hEFCMqIBoqvjHLPJ3LgtvlRkTMdKmXXQOR+fVll29JavcSyCxxLUdHZEA==","signatures":[{"sig":"MEUCIBmKP2Wm4eizerGVv424UjnuL9T9MDkxlO44CqEpaSl5AiEAmiHvuKYzRs30/gkCJjax2oS2hbLnOxWUsORPD2YhtEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12460},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"c9e4e3f854777c3fda9c1ca41cecdcdcc1e6b2ff","scripts":{"lint":"eslint src --ext ts","test":"jest","build":"tsc","prepack":"npm run build","lint:fix":"eslint src --ext ts --fix","api:check":"npm run build && node scripts/public-api.mjs --check","api:update":"npm run build && node scripts/public-api.mjs --update"},"_npmUser":{"name":"anthony-c-martin","email":"anthony.ct.martin@gmail.com"},"repository":{"url":"git+https://github.com/anthony-c-martin/bicep-testing.git","type":"git"},"_npmVersion":"11.17.0","description":"Test library for interacting with the Bicep CLI.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@azure/core-auth":"^1.11.0","@azure/bicep-rpc-client":"^0.2.1","@azure/arm-resourcesdeploymentstacks":"^2.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"30.4.2","eslint":"10.8.0","prettier":"3.9.6","@swc/core":"^1.15.47","@swc/jest":"^0.2.37","typescript":"7.0.2","@types/jest":"30.0.0","eslint-plugin-jest":"29.16.0","@typescript-eslint/parser":"8.66.0","@typescript-eslint/eslint-plugin":"8.66.0"},"_npmOperationalInternal":{"tmp":"tmp/bicep-testing_0.1.0_1786279268441_0.46359553616973925","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@anthony-c-martin/bicep-testing","version":"0.1.1","keywords":["bicep"],"author":{"name":"Anthony Martin"},"license":"MIT","_id":"@anthony-c-martin/bicep-testing@0.1.1","maintainers":[{"name":"anthony-c-martin","email":"anthony.ct.martin@gmail.com"}],"homepage":"https://github.com/anthony-c-martin/bicep-testing#readme","bugs":{"url":"https://github.com/anthony-c-martin/bicep-testing/issues"},"dist":{"shasum":"8ef49b4d8ebde384e746db8fffa59775e45be6fb","tarball":"https://registry.npmjs.org/@anthony-c-martin/bicep-testing/-/bicep-testing-0.1.1.tgz","fileCount":6,"integrity":"sha512-OpzcLhkx5sqaShmxgn8374CZ8GdXmcZHBrYDw4WLop81Jd2+RO492qyH9erIwd8wWNct8/CQLHATOlhjmDCSjw==","signatures":[{"sig":"MEUCIQCvfO9xm0EkIEGmzLRJqwgsMEXxi6H80n/K5/XIPI9yKgIgGDOh5Y3wrSO6h32m6Vmbkv/YD4zf58c0w9mpUCtkoMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anthony-c-martin%2fbicep-testing@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12460},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"ab211674408269112423da269e05b0f4dca0b6c4","scripts":{"lint":"eslint src --ext ts","test":"jest","build":"tsc","prepack":"npm run build","lint:fix":"eslint src --ext ts --fix","api:check":"npm run build && node scripts/public-api.mjs --check","api:update":"npm run build && node scripts/public-api.mjs --update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7915a4f3-e59f-45a1-9a18-5125c74b3254"}},"repository":{"url":"git+https://github.com/anthony-c-martin/bicep-testing.git","type":"git"},"_npmVersion":"11.16.0","description":"Test library for interacting with the Bicep CLI.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@azure/core-auth":"^1.11.0","@azure/bicep-rpc-client":"^0.2.1","@azure/arm-resourcesdeploymentstacks":"^2.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"30.4.2","eslint":"10.8.0","prettier":"3.9.6","@swc/core":"^1.15.47","@swc/jest":"^0.2.37","typescript":"7.0.2","@types/jest":"30.0.0","eslint-plugin-jest":"29.16.0","@typescript-eslint/parser":"8.66.0","@typescript-eslint/eslint-plugin":"8.66.0"},"_npmOperationalInternal":{"tmp":"tmp/bicep-testing_0.1.1_1786282954504_0.143054279465751","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@anthony-c-martin/bicep-testing","version":"0.1.2","keywords":["bicep"],"author":{"name":"Anthony Martin"},"license":"MIT","_id":"@anthony-c-martin/bicep-testing@0.1.2","maintainers":[{"name":"anthony-c-martin","email":"anthony.ct.martin@gmail.com"}],"homepage":"https://github.com/anthony-c-martin/bicep-testing#readme","bugs":{"url":"https://github.com/anthony-c-martin/bicep-testing/issues"},"dist":{"shasum":"3827ba3df6a4b03dfe4f1fb1f9b0db5ab3c2668e","tarball":"https://registry.npmjs.org/@anthony-c-martin/bicep-testing/-/bicep-testing-0.1.2.tgz","fileCount":6,"integrity":"sha512-xZ/7v1iK4Q/qFG4vxmbE0Yzi9V7Klu9+4ISwHSZJHzgirdoyreEuzqpK/IGJy0aHhCxD4oiPVT9xV+iSufMuWw==","signatures":[{"sig":"MEUCIQCe8j4lHmWSiby9vxw5hOe/PqLyQ41DSWBl8B6XuTVSewIgdIgiauvfExoZQEhdP3Kwxqn/Al1Z1mKg4FYmcYrRY/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anthony-c-martin%2fbicep-testing@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":19189},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"80ab4bd000ad95cd4fe95dd65503feed1ef9f4d7","scripts":{"lint":"eslint src --ext ts","test":"jest","build":"tsc","prepack":"npm run build","lint:fix":"eslint src --ext ts --fix","api:check":"npm run build && node scripts/public-api.mjs --check","api:update":"npm run build && node scripts/public-api.mjs --update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7915a4f3-e59f-45a1-9a18-5125c74b3254"}},"repository":{"url":"git+https://github.com/anthony-c-martin/bicep-testing.git","type":"git"},"_npmVersion":"11.16.0","description":"Test library for interacting with the Bicep CLI.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@azure/core-auth":"^1.11.0","@azure/bicep-rpc-client":"^0.2.1","@azure/arm-resourcesdeploymentstacks":"^2.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"30.4.2","eslint":"10.8.0","prettier":"3.9.6","@swc/core":"^1.15.47","@swc/jest":"^0.2.37","typescript":"7.0.2","@types/jest":"30.0.0","eslint-plugin-jest":"29.16.0","@typescript-eslint/parser":"8.66.0","@typescript-eslint/eslint-plugin":"8.66.0"},"_npmOperationalInternal":{"tmp":"tmp/bicep-testing_0.1.2_1786285515854_0.007407343827241064","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@anthony-c-martin/bicep-testing","version":"0.1.3","keywords":["bicep"],"author":{"name":"Anthony Martin"},"license":"MIT","_id":"@anthony-c-martin/bicep-testing@0.1.3","maintainers":[{"name":"anthony-c-martin","email":"anthony.ct.martin@gmail.com"}],"homepage":"https://github.com/anthony-c-martin/bicep-testing#readme","bugs":{"url":"https://github.com/anthony-c-martin/bicep-testing/issues"},"dist":{"shasum":"fba2c0d6d79bed7d189a78e973be8595ef2f0a75","tarball":"https://registry.npmjs.org/@anthony-c-martin/bicep-testing/-/bicep-testing-0.1.3.tgz","fileCount":6,"integrity":"sha512-OODUVjk2NpFGn7yNr51DfbdPKQwTDiUP8MJ7oMMT+pdiXAgMK2YK0PP5WhcBe71gGAGiNfihbEDoxPPngq0ReQ==","signatures":[{"sig":"MEYCIQC+mprNkXVAgN+cNqK3mYyYalayS28SZCmNF48CZBhJywIhAJJwRChUEV/N5NZoSLuK4pj4+/O4PHf/d9E/5GiPn0XN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anthony-c-martin%2fbicep-testing@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18983},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"ad6d528926aa9ba84314885a4187ae31cc1b7d79","scripts":{"lint":"eslint src test scripts jest.config.ts eslint.config.js","test":"jest","build":"tsc","prepack":"npm run build","lint:fix":"npm run lint -- --fix","api:check":"npm run build && node scripts/public-api.mjs --check","api:update":"npm run build && node scripts/public-api.mjs --update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7915a4f3-e59f-45a1-9a18-5125c74b3254"}},"repository":{"url":"git+https://github.com/anthony-c-martin/bicep-testing.git","type":"git"},"_npmVersion":"11.16.0","description":"Test library for interacting with the Bicep CLI.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@azure/core-auth":"^1.11.0","@azure/bicep-rpc-client":"^0.2.1","@azure/arm-resourcesdeploymentstacks":"^2.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"30.4.2","eslint":"10.8.0","globals":"^17.9.0","prettier":"3.9.6","@swc/core":"^1.15.47","@swc/jest":"^0.2.37","@eslint/js":"^10.0.1","typescript":"6.0.3","@types/jest":"30.0.0","eslint-plugin-jest":"29.16.0","@typescript-eslint/parser":"8.66.0","@typescript-eslint/eslint-plugin":"8.66.0"},"_npmOperationalInternal":{"tmp":"tmp/bicep-testing_0.1.3_1786325624550_0.3838397061669736","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@anthony-c-martin/bicep-testing","version":"0.1.4","keywords":["bicep"],"author":{"name":"Anthony Martin"},"license":"MIT","_id":"@anthony-c-martin/bicep-testing@0.1.4","maintainers":[{"name":"anthony-c-martin","email":"anthony.ct.martin@gmail.com"}],"homepage":"https://github.com/anthony-c-martin/bicep-testing#readme","bugs":{"url":"https://github.com/anthony-c-martin/bicep-testing/issues"},"dist":{"shasum":"d1dee327dcf8328182a0e6263cfa63544865d0ce","tarball":"https://registry.npmjs.org/@anthony-c-martin/bicep-testing/-/bicep-testing-0.1.4.tgz","fileCount":6,"integrity":"sha512-IA1FnYKAIRyG5plfWAeyPe/6HmApWrrFnrDJYyXp/XcxmWeU7hHA7ikz7Zjtx3NJsw63BJyPV+oHZAvPRzT5UA==","signatures":[{"sig":"MEUCIQDoZ3VxFd0n5fqD94Azx6UllZyIBLSJl6d+d+gChOYPjwIgJGfpTxnEWfgJ6oDOLbfnjZf1uEvkkMcBwCfeoQU5WNk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anthony-c-martin%2fbicep-testing@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18983},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"2242b35f8e3177d2903d2113ff2d17e3a2dfcdd4","scripts":{"lint":"eslint src test scripts jest.config.ts eslint.config.js","test":"jest","build":"tsc","prepack":"npm run build","lint:fix":"npm run lint -- --fix","api:check":"npm run build && node scripts/public-api.mjs --check","api:update":"npm run build && node scripts/public-api.mjs --update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7915a4f3-e59f-45a1-9a18-5125c74b3254"}},"repository":{"url":"git+https://github.com/anthony-c-martin/bicep-testing.git","type":"git"},"_npmVersion":"11.16.0","description":"Test library for interacting with the Bicep CLI.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@azure/core-auth":"^1.11.0","@azure/bicep-rpc-client":"^0.2.1","@azure/arm-resourcesdeploymentstacks":"^2.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"30.4.2","eslint":"10.8.0","globals":"^17.9.0","prettier":"3.9.6","@swc/core":"^1.15.47","@swc/jest":"^0.2.37","@eslint/js":"^10.0.1","typescript":"6.0.3","@types/jest":"30.0.0","eslint-plugin-jest":"29.16.0","@typescript-eslint/parser":"8.66.0","@typescript-eslint/eslint-plugin":"8.66.0"},"_npmOperationalInternal":{"tmp":"tmp/bicep-testing_0.1.4_1786327886591_0.7434584812718792","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@anthony-c-martin/bicep-testing","version":"0.1.5","keywords":["bicep"],"author":{"name":"Anthony Martin"},"license":"MIT","_id":"@anthony-c-martin/bicep-testing@0.1.5","maintainers":[{"name":"anthony-c-martin","email":"anthony.ct.martin@gmail.com"}],"homepage":"https://github.com/anthony-c-martin/bicep-testing#readme","bugs":{"url":"https://github.com/anthony-c-martin/bicep-testing/issues"},"dist":{"shasum":"12e5ed4a612309e056be46849c9a6d8ffec466c3","tarball":"https://registry.npmjs.org/@anthony-c-martin/bicep-testing/-/bicep-testing-0.1.5.tgz","fileCount":6,"integrity":"sha512-+gbfovH6wx3bx95bGRI9qOkxwDFUQIvycskdFZ5wkMzpYgWxRRSSzcBywkg9tZLrcfItxcWu3eisxJdUbwmfMQ==","signatures":[{"sig":"MEUCIQD68n2M0D8AJ9/BK3DOkuu1l2lEZHQAx5adRxUlCuILwAIgOpPjSlh/gSGdb03LPQv2LTmASSoRYX/axFzO/O4PNN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anthony-c-martin%2fbicep-testing@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":37357},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.js"}},"gitHead":"265c8207b2603895e2770166aea94da3b5d62e6c","scripts":{"lint":"eslint src test scripts jest.config.ts eslint.config.js","test":"jest","build":"tsc","prepack":"npm run build","lint:fix":"npm run lint -- --fix","api:check":"npm run build && node scripts/public-api.mjs --check","api:update":"npm run build && node scripts/public-api.mjs --update"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7915a4f3-e59f-45a1-9a18-5125c74b3254"}},"repository":{"url":"git+https://github.com/anthony-c-martin/bicep-testing.git","type":"git"},"_npmVersion":"11.16.0","description":"Test library for interacting with the Bicep CLI.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@azure/core-auth":"^1.11.0","@azure/bicep-rpc-client":"^0.2.1","@azure/arm-resourcesdeploymentstacks":"^2.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jest":"30.4.2","eslint":"10.8.0","globals":"^17.9.0","prettier":"3.9.6","@swc/core":"^1.15.47","@swc/jest":"^0.2.37","@eslint/js":"^10.0.1","typescript":"7.0.2","@types/jest":"30.0.0","eslint-plugin-jest":"29.16.0","@typescript-eslint/parser":"8.66.0","@typescript-eslint/eslint-plugin":"8.66.0"},"_npmOperationalInternal":{"tmp":"tmp/bicep-testing_0.1.5_1786364249149_0.4195925338254436","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@anthony-c-martin/bicep-testing","version":"0.1.6","description":"Test library for interacting with the Bicep CLI.","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","require":"./dist/index.js","import":"./dist/index.js"}},"scripts":{"build":"tsc","prepack":"npm run build","test":"jest","api:update":"npm run build && node scripts/public-api.mjs --update","api:check":"npm run build && node scripts/public-api.mjs --check","lint":"eslint src test scripts jest.config.ts eslint.config.js","lint:fix":"npm run lint -- --fix"},"repository":{"type":"git","url":"git+https://github.com/anthony-c-martin/bicep-testing.git"},"keywords":["bicep"],"author":{"name":"Anthony Martin"},"license":"MIT","publishConfig":{"access":"public","provenance":true},"bugs":{"url":"https://github.com/anthony-c-martin/bicep-testing/issues"},"homepage":"https://github.com/anthony-c-martin/bicep-testing#readme","devDependencies":{"@eslint/js":"^10.0.1","@swc/core":"^1.15.47","@swc/jest":"^0.2.37","@types/jest":"30.0.0","@typescript-eslint/eslint-plugin":"8.66.0","@typescript-eslint/parser":"8.66.0","eslint":"10.8.0","eslint-plugin-jest":"29.16.0","globals":"^17.9.0","jest":"30.4.2","prettier":"3.9.6","typescript":"7.0.2"},"dependencies":{"@azure/arm-resourcesdeploymentstacks":"^2.0.0","@azure/bicep-rpc-client":"^0.2.1","@azure/core-auth":"^1.11.0"},"gitHead":"1de6b1d3391be37dd92c9497951b9ac7134387ab","_id":"@anthony-c-martin/bicep-testing@0.1.6","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-z4YQsLn2nWAsvz8lmGGbHxdiyYtNbtAj+9iPpg1r2nNzUN+3IFIGSmqNSDesIXF5gme66hE7HdfB0RJUoOz1RA==","shasum":"2d3b183192b8ba8973296a338bca09ec2bbae592","tarball":"https://registry.npmjs.org/@anthony-c-martin/bicep-testing/-/bicep-testing-0.1.6.tgz","fileCount":6,"unpackedSize":37357,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anthony-c-martin%2fbicep-testing@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHxT7VZq6isNnFPwqOgSjztLvSBXzBcr3oRaGek/mYJmAiAELOU24yhwEGz5fCdrmkUxlvOZlfRzSvnPm1AiWSr2JQ=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7915a4f3-e59f-45a1-9a18-5125c74b3254"}},"directories":{},"maintainers":[{"name":"anthony-c-martin","email":"anthony.ct.martin@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bicep-testing_0.1.6_1786374279772_0.19426428782025562"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-09T12:41:08.295Z","modified":"2026-08-10T15:04:40.444Z","0.1.0":"2026-08-09T12:41:08.599Z","0.1.1":"2026-08-09T13:42:34.630Z","0.1.2":"2026-08-09T14:25:15.991Z","0.1.3":"2026-08-10T01:33:44.709Z","0.1.4":"2026-08-10T02:11:26.719Z","0.1.5":"2026-08-10T12:17:29.320Z","0.1.6":"2026-08-10T15:04:40.020Z"},"bugs":{"url":"https://github.com/anthony-c-martin/bicep-testing/issues"},"author":{"name":"Anthony Martin"},"license":"MIT","homepage":"https://github.com/anthony-c-martin/bicep-testing#readme","keywords":["bicep"],"repository":{"type":"git","url":"git+https://github.com/anthony-c-martin/bicep-testing.git"},"description":"Test library for interacting with the Bicep CLI.","maintainers":[{"name":"anthony-c-martin","email":"anthony.ct.martin@gmail.com"}],"readme":"# @anthony-c-martin/bicep-testing\n\nTest the resources, outputs, and diagnostics produced by a Bicep deployment without deploying to Azure. The package can also run opt-in integration tests against a real Azure Deployment Stack when an assertion requires live resources.\n\nThis is an independent, non-official project.\n\n## Requirements\n\n- Node.js 22 or later\n- A `.bicepparam` entry point for the deployment under test\n\n## Installation\n\n```sh\nnpm install --save-dev @anthony-c-martin/bicep-testing@0.1.6\n```\n\n## Snapshot testing\n\nCreate one session for the test suite, evaluate the parameters file during setup, and dispose the session when the suite completes:\n\n```js\nconst { BicepTestSession } = require('@anthony-c-martin/bicep-testing');\n\nlet session;\nlet snapshot;\n\nbeforeAll(async () => {\n  session = await BicepTestSession.create('0.46.1');\n  snapshot = await session.snapshot(\n    'infra/main.bicepparam',\n\t'ddbe463a-0554-485d-b589-0b17d60cd38b',\n\t'28c9069e-23e8-47d2-b640-00d2e0f09616',\n    'example-rg',\n    'eastus',\n    'example-deployment',\n  );\n}, 60_000);\n\nafterAll(() => session.dispose());\n\ntest('storage accounts disable public blob access', () => {\n  const storageAccounts = snapshot.predictedResources.filter(\n    resource => resource.type === 'Microsoft.Storage/storageAccounts',\n  );\n\n  expect(snapshot.diagnostics).toHaveLength(0);\n  expect(storageAccounts.length).toBeGreaterThan(0);\n  storageAccounts.forEach(resource => {\n    expect(resource.properties.allowBlobPublicAccess).toBe(false);\n  });\n});\n```\n\n`BicepTestSession.create()` downloads the requested Bicep CLI version into `~/.bicep/bin` and reuses it on later runs. The session owns a Bicep process, so always call `dispose()` after the tests finish.\n\nSnapshot tests run locally. The subscription, tenant, resource group, location, and deployment values provide evaluation context only; they do not need to exist, and no Azure credentials are required.\n\n## Snapshot results\n\n`snapshot()` returns:\n\n- `predictedResources`: resources and resolved properties predicted for the deployment\n- `outputs`: resolved deployment outputs\n- `diagnostics`: Bicep compilation warnings and errors\n\n## Live deployment testing\n\nCreate a `LiveBicepTestSession` when a test needs Azure validation or a real resource. It owns both the credential and its offline `BicepTestSession`, and forwards `snapshot()` for suites that mix offline and live assertions:\n\n```js\nconst { DefaultAzureCredential } = require('@azure/identity');\nconst { LiveBicepTestSession } = require('@anthony-c-martin/bicep-testing');\n\nconst session = await LiveBicepTestSession.create(\n\t'0.46.1',\n\tnew DefaultAzureCredential(),\n);\nconst options = {\n  filePath: 'infra/main.bicepparam',\n  subscriptionId: process.env.AZURE_SUBSCRIPTION_ID,\n  resourceGroup: process.env.AZURE_RESOURCE_GROUP,\n  parameterOverrides: { env: 'integration' },\n};\n\ntry {\n\tconst validation = await session.validate(options);\n\texpect(validation.isValid).toBe(true);\n\n\tconst deployment = await session.deploy(options);\n\texpect(deployment.succeeded).toBe(true);\n  expect(deployment.resources).toEqual(expect.arrayContaining([\n    expect.objectContaining({ type: 'Microsoft.Storage/storageAccounts' }),\n  ]));\n\tawait deployment.teardown();\n} finally {\n\tsession.dispose();\n}\n```\n\n`DeployOptions` is a discriminated union for resource-group, subscription, and management-group targets. Subscription and management-group stacks require `location`; it is optional for resource-group stacks, which otherwise inherit their location. `filePath` is always required, `parameterOverrides` is optional, and an omitted `stackName` gets a unique `bicep-test-...` value.\n\n`validate()` returns `isValid`, validated `resources`, `correlationId`, and an optional `error`. `deploy()` rejects compilation and option errors before Azure submission. After submission it always returns a `DeployResult`: inspect `succeeded`, `error`, `errorCode`, `errorMessage`, `outputs`, and `resources`, then call `teardown()` even when deployment failed. Error `rawData` preserves the complete ARM error JSON.\n\nLive tests require Azure credentials and permission to validate, create, and delete Deployment Stacks and their managed resources at the selected scope. `teardown()` deletes the stack and all managed resources, treats a missing stack as already removed, and shares one promise across concurrent calls. Keep teardown in a `finally` block; the generated stack name is unique per operation, so specify one when validation and deployment must address the same stack.\n\n## More information\n\n- [Runnable Jest snapshot and deployment samples](https://github.com/anthony-c-martin/bicep-testing/tree/main/samples/node)\n- [Exported API](https://github.com/anthony-c-martin/bicep-testing/blob/main/api/node/bicep-testing.d.ts)\n- [Project repository](https://github.com/anthony-c-martin/bicep-testing)","readmeFilename":"README.md"}