0xj0@0xJ0s-MacBook-Pro constructive-functions % make test-k8s-all
Building Shared Node Runtime...
docker build -t constructive/node-runtime:latest functions/_runtimes/node -f functions/_runtimes/node/Dockerfile.runtime
[+] Building 0.2s (12/12) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile.runtime 0.0s
=> => transferring dockerfile: 835B 0.0s
=> [internal] load metadata for docker.io/library/node:22-alpine 0.2s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [1/7] FROM docker.io/library/node:22-alpine@sha256:a9cd9bac76cf2396abf14ff0d1c3671a8175fe577ce350e62ab0fc1678050176 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 31B 0.0s
=> CACHED [2/7] WORKDIR /runtime 0.0s
=> CACHED [3/7] RUN npm install -g pnpm@10.12.2 0.0s
=> CACHED [4/7] RUN echo '{}' > package.json 0.0s
=> CACHED [5/7] RUN pnpm install express@4.18.2 body-parser@1.20.2 graphql-request@6.1.0 pg@8.11.3 cross-fetch@4.0.0 0.0s
=> CACHED [6/7] COPY runner.js . 0.0s
=> CACHED [7/7] WORKDIR /usr/src/app 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:12d9c77db47cd3d701e91cc70a413f801aa95c69722299ec771410de5855ffde 0.0s
=> => naming to docker.io/constructive/node-runtime:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/p6cr6ncmt2ihgz9q0llzwo9cl
Building Docker images for functions...
Building functions/create-db...
[+] Building 0.2s (11/11) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 323B 0.0s
=> [internal] load metadata for docker.io/library/node:22-alpine 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [1/6] FROM docker.io/library/node:22-alpine@sha256:a9cd9bac76cf2396abf14ff0d1c3671a8175fe577ce350e62ab0fc1678050176 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 4.15kB 0.0s
=> CACHED [2/6] WORKDIR /usr/src/app 0.0s
=> CACHED [3/6] COPY functions/create-db/package.json ./ 0.0s
=> CACHED [4/6] COPY sdk.tgz /usr/sdk.tgz 0.0s
=> CACHED [5/6] RUN npm install -g pnpm@10.12.2 && pnpm install --prod 0.0s
=> CACHED [6/6] COPY functions/create-db/dist ./dist 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:23c9a283f9af00ed85b84a97ea1294488124a9c24671f7a213e67bde820f24bc 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/create-db:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/mse8z8kibnz4foo2su52cztrw
Building functions/crypto-login...
[+] Building 0.1s (11/11) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 329B 0.0s
=> [internal] load metadata for docker.io/library/node:22-alpine 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [1/6] FROM docker.io/library/node:22-alpine@sha256:a9cd9bac76cf2396abf14ff0d1c3671a8175fe577ce350e62ab0fc1678050176 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 7.67kB 0.0s
=> CACHED [2/6] WORKDIR /usr/src/app 0.0s
=> CACHED [3/6] COPY functions/crypto-login/package.json ./ 0.0s
=> CACHED [4/6] COPY sdk.tgz /usr/sdk.tgz 0.0s
=> CACHED [5/6] RUN npm install -g pnpm@10.12.2 && pnpm install --prod 0.0s
=> CACHED [6/6] COPY functions/crypto-login/dist ./dist 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:6dbea667cb35f5bfb638d3f8677e00850d0aa54012c7183bfbbb1b5bc7c29017 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/crypto-login:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/dvhg6ua0qlt6tdq3042lg9wwl
Building functions/github-repo-creator...
[+] Building 0.2s (11/11) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 343B 0.0s
=> [internal] load metadata for docker.io/library/node:22-alpine 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [1/6] FROM docker.io/library/node:22-alpine@sha256:a9cd9bac76cf2396abf14ff0d1c3671a8175fe577ce350e62ab0fc1678050176 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 4.12kB 0.0s
=> CACHED [2/6] WORKDIR /usr/src/app 0.0s
=> CACHED [3/6] COPY functions/github-repo-creator/package.json ./ 0.0s
=> CACHED [4/6] COPY sdk.tgz /usr/sdk.tgz 0.0s
=> CACHED [5/6] RUN npm install -g pnpm@10.12.2 && pnpm install --prod 0.0s
=> CACHED [6/6] COPY functions/github-repo-creator/dist ./dist 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:bc6bef86a3a28ac4914743d306a049a3b62bba9d872e9fb655ee501a134b6cb7 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/github-repo-creator:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/zf6lepm89ix2fppgq773nslee
Building functions/hello-world...
[+] Building 0.2s (19/19) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 850B 0.0s
=> [internal] load metadata for docker.io/constructive/node-runtime:latest 0.0s
=> [internal] load metadata for docker.io/library/node:22-alpine 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [builder 1/7] FROM docker.io/library/node:22-alpine@sha256:a9cd9bac76cf2396abf14ff0d1c3671a8175fe577ce350e62ab0fc1678050176 0.0s
=> [stage-1 1/6] FROM docker.io/constructive/node-runtime:latest 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 32.06kB 0.0s
=> CACHED [stage-1 2/6] WORKDIR /usr/src/app 0.0s
=> CACHED [stage-1 3/6] COPY functions/hello-world/package.json ./ 0.0s
=> CACHED [stage-1 4/6] COPY sdk.tgz /usr/sdk.tgz 0.0s
=> CACHED [stage-1 5/6] RUN npm install -g pnpm@10.12.2 && pnpm install --prod 0.0s
=> CACHED [builder 2/7] WORKDIR /app 0.0s
=> CACHED [builder 3/7] COPY functions/hello-world/package.json ./ 0.0s
=> CACHED [builder 4/7] COPY sdk.tgz /sdk.tgz 0.0s
=> CACHED [builder 5/7] RUN npm install 0.0s
=> CACHED [builder 6/7] COPY functions/hello-world . 0.0s
=> CACHED [builder 7/7] RUN npm run build 0.0s
=> CACHED [stage-1 6/6] COPY --from=builder /app/dist ./dist 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:f2587233a92e7dd3eae66aebe15b67af012f2f9e6af2e82de2a55a518cc7c12f 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/hello-world:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/b3gwwf27iz3dnygbdcb4ux5aa
Building functions/llm-external...
[+] Building 0.2s (11/11) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 329B 0.0s
=> [internal] load metadata for docker.io/library/node:22-alpine 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [1/6] FROM docker.io/library/node:22-alpine@sha256:a9cd9bac76cf2396abf14ff0d1c3671a8175fe577ce350e62ab0fc1678050176 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 4.66kB 0.0s
=> CACHED [2/6] WORKDIR /usr/src/app 0.0s
=> CACHED [3/6] COPY functions/llm-external/package.json ./ 0.0s
=> CACHED [4/6] COPY sdk.tgz /usr/sdk.tgz 0.0s
=> CACHED [5/6] RUN npm install -g pnpm@10.12.2 && pnpm install --prod 0.0s
=> CACHED [6/6] COPY functions/llm-external/dist ./dist 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:f8ac6bf2fe96423103d5405a9fab46fc56de959fa230e619f6e71e829d686835 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/llm-external:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/nm018rp1bqu816808lcntmygb
Building functions/llm-internal-calvin...
[+] Building 0.2s (11/11) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 343B 0.0s
=> [internal] load metadata for docker.io/library/node:22-alpine 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [1/6] FROM docker.io/library/node:22-alpine@sha256:a9cd9bac76cf2396abf14ff0d1c3671a8175fe577ce350e62ab0fc1678050176 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 4.42kB 0.0s
=> CACHED [2/6] WORKDIR /usr/src/app 0.0s
=> CACHED [3/6] COPY functions/llm-internal-calvin/package.json ./ 0.0s
=> CACHED [4/6] COPY sdk.tgz /usr/sdk.tgz 0.0s
=> CACHED [5/6] RUN npm install -g pnpm@10.12.2 && pnpm install --prod 0.0s
=> CACHED [6/6] COPY functions/llm-internal-calvin/dist ./dist 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:6c18cae6909194cec795d84bbc73d9f34291e36601a4efa716daa66be899ccd1 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/llm-internal-calvin:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/p9n5jts6g9ukbaw5ge7gvf8qw
Building functions/opencode-headless...
[+] Building 0.2s (12/12) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 355B 0.0s
=> [internal] load metadata for docker.io/library/node:22-alpine 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [1/7] FROM docker.io/library/node:22-alpine@sha256:a9cd9bac76cf2396abf14ff0d1c3671a8175fe577ce350e62ab0fc1678050176 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 7.69kB 0.0s
=> CACHED [2/7] WORKDIR /usr/src/app 0.0s
=> CACHED [3/7] COPY functions/opencode-headless/package.json ./ 0.0s
=> CACHED [4/7] COPY sdk.tgz /usr/sdk.tgz 0.0s
=> CACHED [5/7] RUN npm install -g pnpm@10.12.2 && pnpm install --prod 0.0s
=> CACHED [6/7] COPY functions/opencode-headless/dist ./dist 0.0s
=> CACHED [7/7] COPY bin ./bin 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:4419ad1e64321015e5d3ccc807edd78c205d4ca5421f05c18e88e6d5697b19fe 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/opencode-headless:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/0q0wtwbsm8ovtq6pqc3z86cq3
Building functions/pgpm-dump...
[+] Building 0.2s (11/11) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 323B 0.0s
=> [internal] load metadata for docker.io/library/node:22-alpine 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [1/6] FROM docker.io/library/node:22-alpine@sha256:a9cd9bac76cf2396abf14ff0d1c3671a8175fe577ce350e62ab0fc1678050176 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 4.36kB 0.0s
=> CACHED [2/6] WORKDIR /usr/src/app 0.0s
=> CACHED [3/6] COPY functions/pgpm-dump/package.json ./ 0.0s
=> CACHED [4/6] COPY sdk.tgz /usr/sdk.tgz 0.0s
=> CACHED [5/6] RUN npm install -g pnpm@10.12.2 && pnpm install --prod 0.0s
=> CACHED [6/6] COPY functions/pgpm-dump/dist ./dist 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:a43eb7921cced79bf80d07a9913dec9ea6559636a9d3977f2e90e32bb4362105 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/pgpm-dump:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/qmha7jfh5xnhm1vms7g049dl6
Building functions/pytorch-gpu...
[+] Building 0.2s (10/10) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 607B 0.0s
=> [internal] load metadata for docker.io/library/python:3.9-slim 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [1/5] FROM docker.io/library/python:3.9-slim@sha256:2d97f6910b16bd338d3060f261f53f144965f755599aab1acda1e13cf1731b1b 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 886B 0.0s
=> CACHED [2/5] WORKDIR /app 0.0s
=> CACHED [3/5] RUN apt-get update && apt-get install -y gcc 0.0s
=> CACHED [4/5] RUN pip install flask torch --no-cache-dir 0.0s
=> CACHED [5/5] COPY functions/pytorch-gpu/src/ ./src/ 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:f85c59eed23b18f350249a8481d63a0e0ae5108695292b32ffc24b2ef5bd78cb 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/pytorch-gpu:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/z947sqqoneqlwuqcu1hy7y6ut
Building functions/runtime-script...
[+] Building 0.2s (11/11) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 333B 0.0s
=> [internal] load metadata for docker.io/library/node:22-alpine 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [1/6] FROM docker.io/library/node:22-alpine@sha256:a9cd9bac76cf2396abf14ff0d1c3671a8175fe577ce350e62ab0fc1678050176 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 548.62kB 0.0s
=> CACHED [2/6] WORKDIR /usr/src/app 0.0s
=> CACHED [3/6] COPY functions/runtime-script/package.json ./ 0.0s
=> CACHED [4/6] COPY sdk.tgz /usr/sdk.tgz 0.0s
=> CACHED [5/6] RUN npm install -g pnpm@10.12.2 && pnpm install --prod 0.0s
=> CACHED [6/6] COPY functions/runtime-script/dist ./dist 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:8699e1f9ede515a371e43b47ca4a8b5f6303ae8d14f8c902c30cddf803ee9752 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/runtime-script:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/383rsnpmg8rmexpfcm7tew35y
Building functions/rust-hello-world...
[+] Building 0.2s (19/19) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 1.01kB 0.0s
=> [internal] load metadata for docker.io/library/alpine:3.19 0.1s
=> [internal] load metadata for docker.io/library/rust:1.83-alpine 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [builder 1/9] FROM docker.io/library/rust:1.83-alpine@sha256:0ac946ed7597a9f053a1be2ce38c09aa88b3d7079a91ea491493615294b1f699 0.0s
=> [stage-1 1/4] FROM docker.io/library/alpine:3.19@sha256:6baf43584bcb78f2e5847d1de515f23499913ac9f12bdf834811a3145eb11ca1 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 991B 0.0s
=> CACHED [stage-1 2/4] WORKDIR /usr/src/app 0.0s
=> CACHED [builder 2/9] WORKDIR /build 0.0s
=> CACHED [builder 3/9] RUN apk add --no-cache musl-dev 0.0s
=> CACHED [builder 4/9] COPY functions/rust-hello-world/Cargo.toml ./ 0.0s
=> CACHED [builder 5/9] RUN mkdir src && echo "fn main() {}" > src/main.rs 0.0s
=> CACHED [builder 6/9] RUN cargo build --release 0.0s
=> CACHED [builder 7/9] RUN rm -rf src 0.0s
=> CACHED [builder 8/9] COPY functions/rust-hello-world/src ./src 0.0s
=> CACHED [builder 9/9] RUN touch src/main.rs && cargo build --release 0.0s
=> CACHED [stage-1 3/4] COPY --from=builder /build/target/release/rust-hello-world ./app 0.0s
=> CACHED [stage-1 4/4] RUN addgroup -g 1000 appuser && adduser -D -u 1000 -G appuser appuser && chown -R appuser:appuser /usr/src/app 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:9299bc272341f37bbcda800cb6bdb70722336e08da968ee607f52c46e84f1ad1 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/rust-hello-world:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/f7z0j9yfw1p1d54qkgn9x8meu
Building functions/send-email-link...
[+] Building 0.2s (11/11) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 336B 0.0s
=> [internal] load metadata for docker.io/library/node:22-alpine 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [1/6] FROM docker.io/library/node:22-alpine@sha256:a9cd9bac76cf2396abf14ff0d1c3671a8175fe577ce350e62ab0fc1678050176 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 557.42kB 0.0s
=> CACHED [2/6] WORKDIR /usr/src/app 0.0s
=> CACHED [3/6] COPY functions/send-email-link/package.json ./ 0.0s
=> CACHED [4/6] COPY sdk.tgz /usr/sdk.tgz 0.0s
=> CACHED [5/6] RUN npm install -g pnpm@10.12.2 && pnpm install --prod 0.0s
=> CACHED [6/6] COPY functions/send-email-link/dist ./dist 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:c312f377854d24bcfa20f5dc5204c27de22b38c29f8dcaab94c89d86d2bc8c23 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/send-email-link:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/iefutj97ixq419cyqg57prt50
Building functions/simple-bash...
[+] Building 0.1s (10/10) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 191B 0.0s
=> [internal] load metadata for docker.io/library/alpine:3.19 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [1/5] FROM docker.io/library/alpine:3.19@sha256:6baf43584bcb78f2e5847d1de515f23499913ac9f12bdf834811a3145eb11ca1 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 267B 0.0s
=> CACHED [2/5] RUN apk add --no-cache bash 0.0s
=> CACHED [3/5] WORKDIR /app 0.0s
=> CACHED [4/5] COPY functions/simple-bash/src/index.sh . 0.0s
=> CACHED [5/5] RUN chmod +x index.sh 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:140584e34ce30c7024fc8733dccf8f1c7c4f2a5afc8a43f63d9bb1d7c56cd1bd 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/simple-bash:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/t7ahrsickc311760wwbcnivvb
Building functions/simple-email...
[+] Building 0.2s (11/11) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 329B 0.0s
=> [internal] load metadata for docker.io/library/node:22-alpine 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [1/6] FROM docker.io/library/node:22-alpine@sha256:a9cd9bac76cf2396abf14ff0d1c3671a8175fe577ce350e62ab0fc1678050176 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 548.99kB 0.0s
=> CACHED [2/6] WORKDIR /usr/src/app 0.0s
=> CACHED [3/6] COPY functions/simple-email/package.json ./ 0.0s
=> CACHED [4/6] COPY sdk.tgz /usr/sdk.tgz 0.0s
=> CACHED [5/6] RUN npm install -g pnpm@10.12.2 && pnpm install --prod 0.0s
=> CACHED [6/6] COPY functions/simple-email/dist ./dist 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:a729c0d7e416a3e60e621c3d72b4a96b8036c983e7d30397f35254392708da46 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/simple-email:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/monkfwo4xjx86ltomba7h08xo
Building functions/stripe-function...
[+] Building 0.1s (11/11) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 335B 0.0s
=> [internal] load metadata for docker.io/library/node:22-alpine 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [1/6] FROM docker.io/library/node:22-alpine@sha256:a9cd9bac76cf2396abf14ff0d1c3671a8175fe577ce350e62ab0fc1678050176 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 4.88kB 0.0s
=> CACHED [2/6] WORKDIR /usr/src/app 0.0s
=> CACHED [3/6] COPY functions/stripe-function/package.json ./ 0.0s
=> CACHED [4/6] COPY sdk.tgz /usr/sdk.tgz 0.0s
=> CACHED [5/6] RUN npm install -g pnpm@10.12.2 && pnpm install --prod 0.0s
=> CACHED [6/6] COPY functions/stripe-function/dist ./dist 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:f4818512c5aaae40df704a477eb23f1fd701555e49afaaaf03884bee32a6ff77 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/stripe-function:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/jaulilev3orggt55zjkwdnpdn
Building functions/twilio-sms...
[+] Building 0.2s (11/11) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 325B 0.0s
=> [internal] load metadata for docker.io/library/node:22-alpine 0.1s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 80B 0.0s
=> [1/6] FROM docker.io/library/node:22-alpine@sha256:a9cd9bac76cf2396abf14ff0d1c3671a8175fe577ce350e62ab0fc1678050176 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 4.26kB 0.0s
=> CACHED [2/6] WORKDIR /usr/src/app 0.0s
=> CACHED [3/6] COPY functions/twilio-sms/package.json ./ 0.0s
=> CACHED [4/6] COPY sdk.tgz /usr/sdk.tgz 0.0s
=> CACHED [5/6] RUN npm install -g pnpm@10.12.2 && pnpm install --prod 0.0s
=> CACHED [6/6] COPY functions/twilio-sms/dist ./dist 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:8365e1e4ff03aff079dc7ebf4f61ba2d5ce2f3fb516a5565bb44b049d2b446c5 0.0s
=> => naming to ghcr.io/constructive-io/constructive-functions/twilio-sms:latest 0.0s
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/vr85ex675v68c054exoq5wylf
Loading all function images into Kind...
Loading functions/create-db...
Image: "ghcr.io/constructive-io/constructive-functions/create-db:latest" with ID "sha256:23c9a283f9af00ed85b84a97ea1294488124a9c24671f7a213e67bde820f24bc" found to be already present on all nodes.
Loading functions/crypto-login...
Image: "ghcr.io/constructive-io/constructive-functions/crypto-login:latest" with ID "sha256:6dbea667cb35f5bfb638d3f8677e00850d0aa54012c7183bfbbb1b5bc7c29017" found to be already present on all nodes.
Loading functions/github-repo-creator...
Image: "ghcr.io/constructive-io/constructive-functions/github-repo-creator:latest" with ID "sha256:bc6bef86a3a28ac4914743d306a049a3b62bba9d872e9fb655ee501a134b6cb7" found to be already present on all nodes.
Loading functions/hello-world...
Image: "ghcr.io/constructive-io/constructive-functions/hello-world:latest" with ID "sha256:f2587233a92e7dd3eae66aebe15b67af012f2f9e6af2e82de2a55a518cc7c12f" not yet present on node "interweb-local-control-plane", loading...
Loading functions/llm-external...
Image: "ghcr.io/constructive-io/constructive-functions/llm-external:latest" with ID "sha256:f8ac6bf2fe96423103d5405a9fab46fc56de959fa230e619f6e71e829d686835" found to be already present on all nodes.
Loading functions/llm-internal-calvin...
Image: "ghcr.io/constructive-io/constructive-functions/llm-internal-calvin:latest" with ID "sha256:6c18cae6909194cec795d84bbc73d9f34291e36601a4efa716daa66be899ccd1" found to be already present on all nodes.
Loading functions/opencode-headless...
Image: "ghcr.io/constructive-io/constructive-functions/opencode-headless:latest" with ID "sha256:4419ad1e64321015e5d3ccc807edd78c205d4ca5421f05c18e88e6d5697b19fe" found to be already present on all nodes.
Loading functions/pgpm-dump...
Image: "ghcr.io/constructive-io/constructive-functions/pgpm-dump:latest" with ID "sha256:a43eb7921cced79bf80d07a9913dec9ea6559636a9d3977f2e90e32bb4362105" found to be already present on all nodes.
Loading functions/pytorch-gpu...
Image: "ghcr.io/constructive-io/constructive-functions/pytorch-gpu:latest" with ID "sha256:f85c59eed23b18f350249a8481d63a0e0ae5108695292b32ffc24b2ef5bd78cb" found to be already present on all nodes.
Loading functions/runtime-script...
Image: "ghcr.io/constructive-io/constructive-functions/runtime-script:latest" with ID "sha256:8699e1f9ede515a371e43b47ca4a8b5f6303ae8d14f8c902c30cddf803ee9752" found to be already present on all nodes.
Loading functions/rust-hello-world...
Image: "ghcr.io/constructive-io/constructive-functions/rust-hello-world:latest" with ID "sha256:9299bc272341f37bbcda800cb6bdb70722336e08da968ee607f52c46e84f1ad1" found to be already present on all nodes.
Loading functions/send-email-link...
Image: "ghcr.io/constructive-io/constructive-functions/send-email-link:latest" with ID "sha256:c312f377854d24bcfa20f5dc5204c27de22b38c29f8dcaab94c89d86d2bc8c23" found to be already present on all nodes.
Loading functions/simple-bash...
Image: "ghcr.io/constructive-io/constructive-functions/simple-bash:latest" with ID "sha256:140584e34ce30c7024fc8733dccf8f1c7c4f2a5afc8a43f63d9bb1d7c56cd1bd" found to be already present on all nodes.
Loading functions/simple-email...
Image: "ghcr.io/constructive-io/constructive-functions/simple-email:latest" with ID "sha256:a729c0d7e416a3e60e621c3d72b4a96b8036c983e7d30397f35254392708da46" found to be already present on all nodes.
Loading functions/stripe-function...
Image: "ghcr.io/constructive-io/constructive-functions/stripe-function:latest" with ID "sha256:f4818512c5aaae40df704a477eb23f1fd701555e49afaaaf03884bee32a6ff77" found to be already present on all nodes.
Loading functions/twilio-sms...
Image: "ghcr.io/constructive-io/constructive-functions/twilio-sms:latest" with ID "sha256:8365e1e4ff03aff079dc7ebf4f61ba2d5ce2f3fb516a5565bb44b049d2b446c5" found to be already present on all nodes.
Running all K8s tests via centralized KubernetesJS runner...
pnpm exec ts-node scripts/test-runner.ts
[dotenv@17.2.3] injecting env (15) from .env -- tip: 🔐 prevent building .env in docker: https://dotenvx.com/prebuild
Starting kubectl proxy on port 8966...
[Runner] Running in ALL mode
[Runner] Starting test for: create-db (Job: test-create-db-1769557247)
[Runner] Waiting for job test-create-db-1769557247 to complete...
[Runner] create-db: Succeeded
[Runner] Fetching logs for test-create-db-1769557247-s5xkw...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
[test-connector] INFO: 🔌 New PgTestClient connected to db-a9db0344-dbcf-4896-bec9-8a22030230da
[test-connector] INFO: 🔌 New PgTestClient connected to db-a9db0344-dbcf-4896-bec9-8a22030230da
[test-connector] INFO: 🔌 New PgTestClient connected to db-a9db0344-dbcf-4896-bec9-8a22030230da
console.log
[Test] Orchestrating Job: create-db-exec-1769557251
at Object.<anonymous> (functions/create-db/__tests__/index.test.ts:42:17)
console.log
[Test] Waiting for pod for job create-db-exec-1769557251 to be Running...
at Object.<anonymous> (functions/create-db/__tests__/index.test.ts:92:17)
console.log
[Test] Found Pod: create-db-exec-1769557251-whqfb
at Object.<anonymous> (functions/create-db/__tests__/index.test.ts:107:33)
console.log
[Test] Service is listening! Success.
at Object.<anonymous> (functions/create-db/__tests__/index.test.ts:118:37)
console.log
[Evidence] Function Pod Logs:
[runner] GRAPHQL_ENDPOINT not set, defaulting to internal k8s service: http://constructive-server:3000/graphql
[runner] Function 'functions/create-db/src/index.ts' listening on port 8080
at Object.<anonymous> (functions/create-db/__tests__/index.test.ts:119:37)
console.log
[Test] Invoking create-db function via proxy...
at Object.<anonymous> (functions/create-db/__tests__/index.test.ts:124:37)
console.log
[Test] Invocation Response: {"created":true,"exists":true,"message":"Database test_db_1769557255 created successfully"}
at Object.<anonymous> (functions/create-db/__tests__/index.test.ts:143:37)
console.log
[Test] Function reported success for test_db_1769557255
at Object.<anonymous> (functions/create-db/__tests__/index.test.ts:152:37)
console.log
[Test] Verified: Database exists in Postgres catalog.
at Object.<anonymous> (functions/create-db/__tests__/index.test.ts:159:37)
[test-connector] INFO: 🧹 Closing all PgTestClients...
[test-connector] SUCCESS: ✅ Closed client for db-a9db0344-dbcf-4896-bec9-8a22030230da
[test-connector] SUCCESS: ✅ Closed client for db-a9db0344-dbcf-4896-bec9-8a22030230da
[test-connector] SUCCESS: ✅ Closed client for db-a9db0344-dbcf-4896-bec9-8a22030230da
[test-connector] INFO: 🧯 Disposing pg pools...
[test-connector] INFO: 🗑️ Dropping seen databases...
[test-connector] WARN: 🧨 Dropped database: db-a9db0344-dbcf-4896-bec9-8a22030230da
[test-connector] SUCCESS: ✅ All PgTestClients closed, pools disposed, databases dropped.
PASS functions/create-db/__tests__/index.test.ts (7.043 s)
Create DB Function (Integration)
✓ should orchestrate the create-db job and verify database creation (4344 ms)
✓ should verify database connectivity via pgsql-test (1 ms)
Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
Snapshots: 0 total
Time: 7.211 s
Ran all test suites matching functions/create-db/__tests__/index.test.ts.
==============================================================
[Runner] Starting test for: crypto-login (Job: test-crypto-login-1769557259)
[Runner] Waiting for job test-crypto-login-1769557259 to complete...
[Runner] crypto-login: Succeeded
[Runner] Fetching logs for test-crypto-login-1769557259-wknsx...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
console.log
[Test] Invoking crypto-login via proxy...
at Object.<anonymous> (functions/crypto-login/__tests__/index.test.ts:90:37)
console.log
[Evidence] Pod Logs:
[runner] GRAPHQL_ENDPOINT not set, defaulting to internal k8s service: http://constructive-server:3000/graphql
[runner] Function 'functions/crypto-login/src/index.ts' listening on port 8080
[knative-job-fn] INFO: Incoming job request {
"method": "POST",
"path": "/",
"headers": {},
"body": {
"keys": [
"email",
"password"
]
}
}
[runner] Incoming Request Body: {"email":"test","password":"test"}
[crypto-login] Request received
at Object.<anonymous> (functions/crypto-login/__tests__/index.test.ts:102:37)
console.log
[Teardown] Cleaning up job: crypto-login-exec-1769557263
at functions/test-utils.ts:22:17
PASS functions/crypto-login/__tests__/index.test.ts (8.463 s)
Crypto Login Function (Integration)
✓ should orchestrate the crypto-login job and verify startup (6205 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 8.613 s
Ran all test suites matching functions/crypto-login/__tests__/index.test.ts.
==============================================================
[Runner] Starting test for: github-repo-creator (Job: test-github-repo-creator-1769557273)
[Runner] Waiting for job test-github-repo-creator-1769557273 to complete...
[Runner] github-repo-creator: Succeeded
[Runner] Fetching logs for test-github-repo-creator-1769557273-jszgf...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
console.log
[Test] Invoking github-repo-creator via proxy...
at Object.<anonymous> (functions/github-repo-creator/__tests__/index.test.ts:71:37)
console.log
[Evidence] Pod Logs:
}
}
[runner] Incoming Request Body: {"repoName":"test","githubToken":"abc"}
[github-repo-creator] Request received
Creating repo: test
RequestError [HttpError]: Bad credentials - https://docs.github.com/rest
at /app/node_modules/.pnpm/@octokit+request@8.4.1/node_modules/@octokit/request/dist-node/index.js:125:21
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at async requestWithGraphqlErrorHandling (/app/node_modules/.pnpm/@octokit+plugin-retry@6.1.0_@octokit+core@5.2.2/node_modules/@octokit/plugin-retry/dist-node/index.js:71:20)
at async Job.doExecute (/app/node_modules/.pnpm/bottleneck@2.19.5/node_modules/bottleneck/light.js:405:18) {
status: 401,
response: {
url: 'https://api.github.com/user/repos',
status: 401,
headers: {
'access-control-allow-origin': '*',
'access-control-expose-headers': 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset',
connection: 'close',
'content-security-policy': "default-src 'none'",
'content-type': 'application/json; charset=utf-8',
date: 'Tue, 27 Jan 2026 23:41:22 GMT',
'referrer-policy': 'origin-when-cross-origin, strict-origin-when-cross-origin',
server: 'github.com',
'strict-transport-security': 'max-age=31536000; includeSubdomains; preload',
vary: 'Accept-Encoding, Accept, X-Requested-With',
'x-content-type-options': 'nosniff',
'x-frame-options': 'deny',
'x-github-media-type': 'github.v3; format=json',
'x-github-request-id': 'CBD2:2325D3:3D5388:1126CFA:69794D22',
'x-xss-protection': '0'
},
data: {
message: 'Bad credentials',
documentation_url: 'https://docs.github.com/rest',
status: '401'
}
},
request: {
method: 'POST',
url: 'https://api.github.com/user/repos',
headers: {
accept: 'application/vnd.github.v3+json',
'user-agent': 'octokit.js/3.2.2 octokit-core.js/5.2.2 Node.js/20.19.4 (linux; arm64)',
authorization: 'token [REDACTED]',
'content-type': 'application/json; charset=utf-8'
},
body: '{"name":"test","private":true}',
request: { hook: [Function: bound bound register] }
}
}
at Object.<anonymous> (functions/github-repo-creator/__tests__/index.test.ts:82:37)
console.log
[Teardown] Cleaning up job: gh-repo-create-exec-1769557278
at functions/test-utils.ts:22:17
PASS functions/github-repo-creator/__tests__/index.test.ts (8.608 s)
Github Repo Creator Function (Integration)
✓ should orchestrate the github-repo-creator job (6398 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 8.764 s
Ran all test suites matching functions/github-repo-creator/__tests__/index.test.ts.
==============================================================
[Runner] Starting test for: hello-world (Job: test-hello-world-1769557289)
[Runner] Waiting for job test-hello-world-1769557289 to complete...
[Runner] hello-world: Succeeded
[Runner] Fetching logs for test-hello-world-1769557289-lvbdh...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
[test-connector] INFO: 🔌 New PgTestClient connected to hello_world_test_46857
[test-connector] INFO: 🔌 New PgTestClient connected to hello_world_test_46857
[test-connector] INFO: 🔌 New PgTestClient connected to hello_world_test_46857
console.log
[Test] Orchestrating Job: hello-world-exec-1769557296
at Object.<anonymous> (functions/hello-world/__tests__/index.test.ts:57:17)
console.log
[Test] Waiting for pod for job hello-world-exec-1769557296 to be Running...
at Object.<anonymous> (functions/hello-world/__tests__/index.test.ts:105:17)
console.log
[Test] Found Pod: hello-world-exec-1769557296-qbfrd
at Object.<anonymous> (functions/hello-world/__tests__/index.test.ts:121:33)
console.log
[Test] Service is listening! Success.
at Object.<anonymous> (functions/hello-world/__tests__/index.test.ts:133:37)
console.log
[Evidence] Function Pod Logs:
[runner] GRAPHQL_ENDPOINT not set, defaulting to internal k8s service: http://constructive-server:3000/graphql
[runner] Function 'functions/hello-world/src/index.ts' listening on port 8080
at Object.<anonymous> (functions/hello-world/__tests__/index.test.ts:134:37)
console.log
[Test] Invoking hello-world function via proxy...
at Object.<anonymous> (functions/hello-world/__tests__/index.test.ts:138:37)
console.log
[Test] Invocation Response: {"message":"Hello World","received":{"name":"Test User"},"user":{"id":"user_123"},"apis":{"apis":{"nodes":[{"id":"a1a5ec6f-eff4-47b4-a372-2487cab792fe","name":"main-api"}],"totalCount":1,"pageInfo":{"hasNextPage":false,"hasPreviousPage":false,"startCursor":"WyJwcmltYXJ5X2tleV9hc2MiLFsiYTFhNWVjNmYtZWZmNC00N2I0LWEzNzItMjQ4N2NhYjc5MmZlIl1d","endCursor":"WyJwcmltYXJ5X2tleV9hc2MiLFsiYTFhNWVjNmYtZWZmNC00N2I0LWEzNzItMjQ4N2NhYjc5MmZlIl1d"}}}}
at Object.<anonymous> (functions/hello-world/__tests__/index.test.ts:155:37)
console.log
[Test] Verified: User Context injected correctly (X-User-Id priority).
at Object.<anonymous> (functions/hello-world/__tests__/index.test.ts:159:41)
console.log
[Test] Fetching post-invocation logs...
at Object.<anonymous> (functions/hello-world/__tests__/index.test.ts:165:37)
console.log
[Evidence] Post-Invocation Pod Logs:
[runner] GRAPHQL_ENDPOINT not set, defaulting to internal k8s service: http://constructive-server:3000/graphql
[runner] Function 'functions/hello-world/src/index.ts' listening on port 8080
[knative-job-fn] INFO: Incoming job request {
"method": "POST",
"path": "/",
"headers": {},
"body": {
"keys": [
"name"
]
}
}
[runner] Incoming Request Body: {"name":"Test User"}
Incoming Headers: {"host":"10.96.0.1:443","user-agent":"node","content-length":"20","accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","content-type":"application/json","sec-fetch-mode":"cors","x-forwarded-for":"127.0.0.1, 10.244.0.73","x-forwarded-uri":"/api/v1/namespaces/default/pods/hello-world-exec-1769557296-qbfrd:8080/proxy/","x-user-id":"user_123"}
[hello-world] GQL Response: {
"apis": {
"nodes": [
{
"id": "a1a5ec6f-eff4-47b4-a372-2487cab792fe",
"name": "main-api"
}
],
"totalCount": 1,
"pageInfo": {
"hasNextPage": false,
"hasPreviousPage": false,
"startCursor": "WyJwcmltYXJ5X2tleV9hc2MiLFsiYTFhNWVjNmYtZWZmNC00N2I0LWEzNzItMjQ4N2NhYjc5MmZlIl1d",
"endCursor": "WyJwcmltYXJ5X2tleV9hc2MiLFsiYTFhNWVjNmYtZWZmNC00N2I0LWEzNzItMjQ4N2NhYjc5MmZlIl1d"
}
}
}
at Object.<anonymous> (functions/hello-world/__tests__/index.test.ts:169:37)
[test-connector] INFO: 🧹 Closing all PgTestClients...
[test-connector] SUCCESS: ✅ Closed client for hello_world_test_46857
[test-connector] SUCCESS: ✅ Closed client for hello_world_test_46857
[test-connector] SUCCESS: ✅ Closed client for hello_world_test_46857
[test-connector] INFO: 🧯 Disposing pg pools...
[test-connector] INFO: 🗑️ Dropping seen databases...
[test-connector] WARN: 🧨 Dropped database: hello_world_test_46857
[test-connector] SUCCESS: ✅ All PgTestClients closed, pools disposed, databases dropped.
PASS functions/hello-world/__tests__/index.test.ts (11.833 s)
Hello World Function (Integration)
✓ should orchestrate the hello-world job and verify completion (6147 ms)
✓ should verify database connectivity via pgsql-test (6 ms)
Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
Snapshots: 0 total
Time: 12.007 s
Ran all test suites matching functions/hello-world/__tests__/index.test.ts.
==============================================================
[Runner] Starting test for: llm-external (Job: test-llm-external-1769557305)
[Runner] Waiting for job test-llm-external-1769557305 to complete...
[Runner] llm-external: Succeeded
[Runner] Fetching logs for test-llm-external-1769557305-2mdlq...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
console.log
[dotenv@17.2.3] injecting env (0) from .env -- tip: 🔐 encrypt with Dotenvx: https://dotenvx.com
at _log (node_modules/.pnpm/dotenv@17.2.3/node_modules/dotenv/lib/main.js:142:11)
console.log
[Test] Triggering function...
at Object.<anonymous> (functions/llm-external/__tests__/index.test.ts:77:37)
console.log
[Test] Response: {
result: 'Mock logic works',
users: { apis: { nodes: [Array], totalCount: 1, pageInfo: [Object] } },
works: true
}
at Object.<anonymous> (functions/llm-external/__tests__/index.test.ts:89:41)
console.log
[Evidence] Pod Logs:
[runner] GRAPHQL_ENDPOINT not set, defaulting to internal k8s service: http://constructive-server:3000/graphql
[runner] Function 'functions/llm-external/src/index.ts' listening on port 8080
[knative-job-fn] INFO: Incoming job request {
"method": "POST",
"path": "/",
"headers": {},
"body": {
"keys": [
"provider",
"prompt"
]
}
}
[runner] Incoming Request Body: {"provider":"test","prompt":"Can you explain the quantum field theory in simple terms?"}
Constructive KNS: Request Received
[llm-external] Request received
at Object.<anonymous> (functions/llm-external/__tests__/index.test.ts:97:45)
console.log
[Evidence] Function Pod Logs:
[runner] GRAPHQL_ENDPOINT not set, defaulting to internal k8s service: http://constructive-server:3000/graphql
[runner] Function 'functions/llm-external/src/index.ts' listening on port 8080
[knative-job-fn] INFO: Incoming job request {
"method": "POST",
"path": "/",
"headers": {},
"body": {
"keys": [
"provider",
"prompt"
]
}
}
[runner] Incoming Request Body: {"provider":"test","prompt":"Can you explain the quantum field theory in simple terms?"}
Constructive KNS: Request Received
[llm-external] Request received
at Object.<anonymous> (functions/llm-external/__tests__/index.test.ts:115:25)
console.log
[Teardown] Cleaning up job: llm-ext-exec-1769557309
at functions/test-utils.ts:22:17
PASS functions/llm-external/__tests__/index.test.ts (8.422 s)
LLM External Function (Integration)
✓ should orchestrate the llm-external job (6174 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 8.576 s
Ran all test suites matching functions/llm-external/__tests__/index.test.ts.
==============================================================
[Runner] Starting test for: llm-internal-calvin (Job: test-llm-internal-calvin-1769557319)
[Runner] Waiting for job test-llm-internal-calvin-1769557319 to complete...
[Runner] llm-internal-calvin: Succeeded
[Runner] Fetching logs for test-llm-internal-calvin-1769557319-dl9g4...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
[test-connector] INFO: 🔌 New PgTestClient connected to db-758ed814-e605-4395-bacf-67d99258f455
[test-connector] INFO: 🔌 New PgTestClient connected to db-758ed814-e605-4395-bacf-67d99258f455
[test-connector] INFO: 🔌 New PgTestClient connected to db-758ed814-e605-4395-bacf-67d99258f455
console.log
[Test] Triggering Cloud Function (Attempt 1)...
at Object.<anonymous> (functions/llm-internal-calvin/__tests__/index.test.ts:115:41)
console.log
[Test] Cloud Function Result: {
"result": "Hello to you too! 😊 \n\nIs there anything I can help you with today?",
"meta": {
"id": "chatcmpl-b0d811c27909fd4a1634976b082e6a89",
"object": "chat.completion",
"created": 1769557328,
"model": "RedHatAI/gemma-3-12b-it-quantized.w8a8",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello to you too! 😊 \n\nIs there anything I can help you with today?",
"refusal": null,
"annotations": null,
"audio": null,
"function_call": null,
"tool_calls": [],
"reasoning": null,
"reasoning_content": null
},
"logprobs": null,
"finish_reason": "stop",
"stop_reason": 106,
"token_ids": null
}
],
"service_tier": null,
"system_fingerprint": null,
"usage": {
"prompt_tokens": 11,
"total_tokens": 30,
"completion_tokens": 19,
"prompt_tokens_details": null
},
"prompt_logprobs": null,
"prompt_token_ids": null,
"kv_transfer_params": null
}
}
at Object.<anonymous> (functions/llm-internal-calvin/__tests__/index.test.ts:129:49)
console.log
[Evidence] Pod Logs:
[runner] GRAPHQL_ENDPOINT not set, defaulting to internal k8s service: http://constructive-server:3000/graphql
[runner] Function 'functions/llm-internal-calvin/src/index.ts' listening on port 8080
[knative-job-fn] INFO: Incoming job request {
"method": "POST",
"path": "/",
"headers": {},
"body": {
"keys": [
"prompt"
]
}
}
[runner] Incoming Request Body: {"prompt":"hello world"}
[llm-internal-calvin] Request received
Calling Calvin API with prompt: hello world...
Calvin API Response received
at Object.<anonymous> (functions/llm-internal-calvin/__tests__/index.test.ts:147:37)
console.log
✅ Final Verified Calvin Response: Hello to you too! 😊
Is there anything I can help you with today?
at Object.<anonymous> (functions/llm-internal-calvin/__tests__/index.test.ts:172:17)
console.log
[Teardown] Cleaning up job: llm-calvin-exec-1769557323
at functions/test-utils.ts:22:17
[test-connector] INFO: 🧹 Closing all PgTestClients...
[test-connector] SUCCESS: ✅ Closed client for db-758ed814-e605-4395-bacf-67d99258f455
[test-connector] SUCCESS: ✅ Closed client for db-758ed814-e605-4395-bacf-67d99258f455
[test-connector] SUCCESS: ✅ Closed client for db-758ed814-e605-4395-bacf-67d99258f455
[test-connector] INFO: 🧯 Disposing pg pools...
[test-connector] INFO: 🗑️ Dropping seen databases...
[test-connector] WARN: 🧨 Dropped database: db-758ed814-e605-4395-bacf-67d99258f455
[test-connector] SUCCESS: ✅ All PgTestClients closed, pools disposed, databases dropped.
PASS functions/llm-internal-calvin/__tests__/index.test.ts (11.01 s)
LLM Internal Calvin Function (Integration)
✓ should orchestrate the llm-internal-calvin job (8417 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 11.162 s
Ran all test suites matching functions/llm-internal-calvin/__tests__/index.test.ts.
==============================================================
[Runner] Starting test for: opencode-headless (Job: test-opencode-headless-1769557335)
[Runner] Waiting for job test-opencode-headless-1769557335 to complete...
[Runner] opencode-headless: Succeeded
[Runner] Fetching logs for test-opencode-headless-1769557335-vplwb...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
console.log
Attempting to trigger opencode-headless via proxy...
at Object.<anonymous> (functions/opencode-headless/__tests__/index.test.ts:71:41)
console.log
Trigger status: 200 OK
at Object.<anonymous> (functions/opencode-headless/__tests__/index.test.ts:77:41)
console.log
Trigger response: {"success":true,"status":"running","pid":37}
at Object.<anonymous> (functions/opencode-headless/__tests__/index.test.ts:79:41)
console.log
[Evidence] Function Pod Logs:
[runner] GRAPHQL_ENDPOINT not set, defaulting to internal k8s service: http://constructive-server:3000/graphql
[runner] Function 'functions/opencode-headless/src/index.ts' listening on port 8080
[knative-job-fn] INFO: Incoming job request {
"method": "POST",
"path": "/",
"headers": {},
"body": {
"keys": [
"prompt"
]
}
}
[runner] Incoming Request Body: {"prompt":"test"}
[opencode-headless] Request received
Starting Opencode Agent for: No URL - test
[opencode-headless] Using binary at: /app/functions/opencode-headless/bin/opencode
[opencode-headless] Spawning: /app/functions/opencode-headless/bin/opencode with args: serve --port 8081
[opencode-headless] Child PID: 37
[opencode] opencode server listening on http://127.0.0.1:8081
at Object.<anonymous> (functions/opencode-headless/__tests__/index.test.ts:104:21)
PASS functions/opencode-headless/__tests__/index.test.ts (9 s)
Opencode Headless Function (Integration)
✓ should orchestrate the opencode-headless job (6797 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 9.154 s
Ran all test suites matching functions/opencode-headless/__tests__/index.test.ts.
==============================================================
[Runner] Starting test for: pgpm-dump (Job: test-pgpm-dump-1769557349)
[Runner] Waiting for job test-pgpm-dump-1769557349 to complete...
[Runner] pgpm-dump: Succeeded
[Runner] Fetching logs for test-pgpm-dump-1769557349-p69hg...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
[test-connector] INFO: 🔌 New PgTestClient connected to db-d1579258-023e-468c-8d97-fe0e384cfbac
[test-connector] INFO: 🔌 New PgTestClient connected to db-d1579258-023e-468c-8d97-fe0e384cfbac
[test-connector] INFO: 🔌 New PgTestClient connected to db-d1579258-023e-468c-8d97-fe0e384cfbac
console.log
[Test] Orchestrating Job: pgpm-dump-exec-1769557354
at Object.<anonymous> (functions/pgpm-dump/__tests__/index.test.ts:42:17)
console.log
[Test] Waiting for pod for job pgpm-dump-exec-1769557354 to be Running...
at Object.<anonymous> (functions/pgpm-dump/__tests__/index.test.ts:93:17)
console.log
[Test] Found Pod: pgpm-dump-exec-1769557354-869p6
at Object.<anonymous> (functions/pgpm-dump/__tests__/index.test.ts:108:33)
console.log
[Test] Service is listening! Success.
at Object.<anonymous> (functions/pgpm-dump/__tests__/index.test.ts:119:37)
console.log
[Evidence] Function Pod Logs:
[runner] GRAPHQL_ENDPOINT not set, defaulting to internal k8s service: http://constructive-server:3000/graphql
[runner] Function 'functions/pgpm-dump/src/index.ts' listening on port 8080
at Object.<anonymous> (functions/pgpm-dump/__tests__/index.test.ts:120:37)
console.log
[Test] Invoking pgpm-dump function via proxy...
at Object.<anonymous> (functions/pgpm-dump/__tests__/index.test.ts:125:37)
console.log
[Test] Invocation Response: {"message":"PGPM Dump executed successfully","args":{"_":[],"database":"postgres","out":"/tmp/test_dump.sql","user":"postgres"}}
at Object.<anonymous> (functions/pgpm-dump/__tests__/index.test.ts:147:37)
console.log
[Test] Function invocation reported success. Verifying file existence in pod...
at Object.<anonymous> (functions/pgpm-dump/__tests__/index.test.ts:157:37)
console.log
[Test] Verified: Function returned success message.
at Object.<anonymous> (functions/pgpm-dump/__tests__/index.test.ts:162:37)
console.log
[Test] Verified: SQL dump file exists inside the container.
at Object.<anonymous> (functions/pgpm-dump/__tests__/index.test.ts:164:37)
console.log
[Evidence] Final Pod Logs (incl. Dump Output):
[runner] GRAPHQL_ENDPOINT not set, defaulting to internal k8s service: http://constructive-server:3000/graphql
[runner] Function 'functions/pgpm-dump/src/index.ts' listening on port 8080
[knative-job-fn] INFO: Incoming job request {
"method": "POST",
"path": "/",
"headers": {},
"body": {
"keys": [
"database",
"out",
"user"
]
}
}
[runner] Incoming Request Body: {"database":"postgres","out":"/tmp/test_dump.sql","user":"postgres"}
Pgpm Dump Request received { database: 'postgres', out: '/tmp/test_dump.sql', user: 'postgres' }
GQL Query Result: {"ok":true,"data":{"apis":{"nodes":[{"id":"a1a5ec6f-eff4-47b4-a372-2487cab792fe","name":"main-api"}],"totalCount":1,"pageInfo":{"hasNextPage":false,"hasPreviousPage":false,"startCursor":"WyJwcmltYXJ5X2tleV9hc2MiLFsiYTFhNWVjNmYtZWZmNC00N2I0LWEzNzItMjQ4N2NhYjc5MmZlIl1d","endCursor":"WyJwcmltYXJ5X2tleV9hc2MiLFsiYTFhNWVjNmYtZWZmNC00N2I0LWEzNzItMjQ4N2NhYjc5MmZlIl1d"}}}}
Executing pgpm dump programmatically with args: {"_":[],"database":"postgres","out":"/tmp/test_dump.sql","user":"postgres"}
[dump] INFO: dumping database postgres
[dump] INFO: writing to /tmp/test_dump.sql
[dump] SUCCESS: dump complete
at Object.<anonymous> (functions/pgpm-dump/__tests__/index.test.ts:169:37)
[test-connector] INFO: 🧹 Closing all PgTestClients...
[test-connector] SUCCESS: ✅ Closed client for db-d1579258-023e-468c-8d97-fe0e384cfbac
[test-connector] SUCCESS: ✅ Closed client for db-d1579258-023e-468c-8d97-fe0e384cfbac
[test-connector] SUCCESS: ✅ Closed client for db-d1579258-023e-468c-8d97-fe0e384cfbac
[test-connector] INFO: 🧯 Disposing pg pools...
[test-connector] INFO: 🗑️ Dropping seen databases...
[test-connector] WARN: 🧨 Dropped database: db-d1579258-023e-468c-8d97-fe0e384cfbac
[test-connector] SUCCESS: ✅ All PgTestClients closed, pools disposed, databases dropped.
PASS functions/pgpm-dump/__tests__/index.test.ts (6.804 s)
Pgpm Dump Function (Integration)
✓ should orchestrate the pgpm-dump job and verify completion (4184 ms)
✓ should verify database connectivity via pgsql-test (4 ms)
Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
Snapshots: 0 total
Time: 7 s
Ran all test suites matching functions/pgpm-dump/__tests__/index.test.ts.
==============================================================
[Runner] Starting test for: pytorch-gpu (Job: test-pytorch-gpu-1769557361)
[Runner] Waiting for job test-pytorch-gpu-1769557361 to complete...
[Runner] pytorch-gpu: Succeeded
[Runner] Fetching logs for test-pytorch-gpu-1769557361-7d7rv...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
PASS functions/pytorch-gpu/__tests__/index.test.ts (6.313 s)
PyTorch GPU Function (Integration)
✓ should orchestrate the pytorch-gpu job (4140 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 6.463 s
Ran all test suites matching functions/pytorch-gpu/__tests__/index.test.ts.
==============================================================
[Runner] Starting test for: runtime-script (Job: test-runtime-script-1769557373)
[Runner] Waiting for job test-runtime-script-1769557373 to complete...
[Runner] runtime-script: Succeeded
[Runner] Fetching logs for test-runtime-script-1769557373-bzxh7...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
[test-connector] INFO: 🔌 New PgTestClient connected to runtime_script_test_33675
[test-connector] INFO: 🔌 New PgTestClient connected to runtime_script_test_33675
[test-connector] INFO: 🔌 New PgTestClient connected to runtime_script_test_33675
console.log
[Test] Waiting for pod for job runtime-script-exec-1769557378 to be Running...
at Object.<anonymous> (functions/runtime-script/__tests__/index.test.ts:94:17)
console.log
[Test] Found Pod: runtime-script-exec-1769557378-b4r5w
at Object.<anonymous> (functions/runtime-script/__tests__/index.test.ts:109:33)
console.log
[Test] Service is listening! Success.
at Object.<anonymous> (functions/runtime-script/__tests__/index.test.ts:119:37)
console.log
[Test] Invoking runtime-script function via proxy...
at Object.<anonymous> (functions/runtime-script/__tests__/index.test.ts:136:17)
console.log
[Test] Invocation Response: {"message":"Script executed successfully","rowCount":1,"rows":[{"num":1}],"users":{"apis":{"nodes":[{"id":"a1a5ec6f-eff4-47b4-a372-2487cab792fe","name":"main-api"}],"totalCount":1,"pageInfo":{"hasNextPage":false,"hasPreviousPage":false,"startCursor":"WyJwcmltYXJ5X2tleV9hc2MiLFsiYTFhNWVjNmYtZWZmNC00N2I0LWEzNzItMjQ4N2NhYjc5MmZlIl1d","endCursor":"WyJwcmltYXJ5X2tleV9hc2MiLFsiYTFhNWVjNmYtZWZmNC00N2I0LWEzNzItMjQ4N2NhYjc5MmZlIl1d"}}}}
at Object.<anonymous> (functions/runtime-script/__tests__/index.test.ts:155:17)
console.log
[Test] Fetching post-invocation logs...
at Object.<anonymous> (functions/runtime-script/__tests__/index.test.ts:158:17)
console.log
[Evidence] Post-Invocation Pod Logs:
[runner] GRAPHQL_ENDPOINT not set, defaulting to internal k8s service: http://constructive-server:3000/graphql
[runner] Function 'functions/runtime-script/src/index.ts' listening on port 8080
[knative-job-fn] INFO: Incoming job request {
"method": "POST",
"path": "/",
"headers": {},
"body": {
"keys": [
"query"
]
}
}
[runner] Incoming Request Body: {"query":"SELECT 1 as num"}
[runtime-script] PARAMS: {"query":"SELECT 1 as num"}
[runtime-script] Received script request
[runtime-script] GQL Response: {
"ok": true,
"data": {
"apis": {
"nodes": [
{
"id": "a1a5ec6f-eff4-47b4-a372-2487cab792fe",
"name": "main-api"
}
],
"totalCount": 1,
"pageInfo": {
"hasNextPage": false,
"hasPreviousPage": false,
"startCursor": "WyJwcmltYXJ5X2tleV9hc2MiLFsiYTFhNWVjNmYtZWZmNC00N2I0LWEzNzItMjQ4N2NhYjc5MmZlIl1d",
"endCursor": "WyJwcmltYXJ5X2tleV9hc2MiLFsiYTFhNWVjNmYtZWZmNC00N2I0LWEzNzItMjQ4N2NhYjc5MmZlIl1d"
}
}
}
}
[runtime-script] Executing query: SELECT 1 as num
[runtime-script] Query executed. Rows: 1
at Object.<anonymous> (functions/runtime-script/__tests__/index.test.ts:162:17)
[test-connector] INFO: 🧹 Closing all PgTestClients...
[test-connector] SUCCESS: ✅ Closed client for runtime_script_test_33675
[test-connector] SUCCESS: ✅ Closed client for runtime_script_test_33675
[test-connector] SUCCESS: ✅ Closed client for runtime_script_test_33675
[test-connector] INFO: 🧯 Disposing pg pools...
[test-connector] INFO: 🗑️ Dropping seen databases...
[test-connector] WARN: 🧨 Dropped database: runtime_script_test_33675
[test-connector] SUCCESS: ✅ All PgTestClients closed, pools disposed, databases dropped.
PASS functions/runtime-script/__tests__/index.test.ts (8.901 s)
Runtime Script Function (Integration)
✓ should orchestrate runtime-script service (6196 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 9.045 s
Ran all test suites matching functions/runtime-script/__tests__/index.test.ts.
==============================================================
[Runner] Starting test for: rust-hello-world (Job: test-rust-hello-world-1769557388)
[Runner] Waiting for job test-rust-hello-world-1769557388 to complete...
[Runner] rust-hello-world: Succeeded
[Runner] Fetching logs for test-rust-hello-world-1769557388-gt789...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
console.log
[Test] Orchestrating Job: rust-hw-exec-1769557392
at Object.<anonymous> (functions/rust-hello-world/__tests__/index.test.ts:32:17)
PASS functions/rust-hello-world/__tests__/index.test.ts
Rust Hello World Function (Integration)
✓ should orchestrate the rust-hello-world job and verify log output (2104 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 4.508 s
Ran all test suites matching functions/rust-hello-world/__tests__/index.test.ts.
==============================================================
[Runner] Starting test for: send-email-link (Job: test-send-email-link-1769557398)
[Runner] Waiting for job test-send-email-link-1769557398 to complete...
[Runner] send-email-link: Succeeded
[Runner] Fetching logs for test-send-email-link-1769557398-t754r...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
[test-connector] INFO: 🔌 New PgTestClient connected to send_email_link_test_90182
[test-connector] INFO: 🔌 New PgTestClient connected to send_email_link_test_90182
[test-connector] INFO: 🔌 New PgTestClient connected to send_email_link_test_90182
console.log
[Test] Waiting for pod for job send-email-link-exec-1769557403 to be Running...
at Object.<anonymous> (functions/send-email-link/__tests__/index.test.ts:98:17)
console.log
[Test] Found Pod: send-email-link-exec-1769557403-54pln
at Object.<anonymous> (functions/send-email-link/__tests__/index.test.ts:114:33)
console.log
[Test] Attempting to trigger function...
at Object.<anonymous> (functions/send-email-link/__tests__/index.test.ts:133:37)
console.log
[Test] Trigger response: { missing: 'email_type' }
at Object.<anonymous> (functions/send-email-link/__tests__/index.test.ts:147:37)
console.log
[Test] Trigger Verification Succeeded! Fetching logs...
at Object.<anonymous> (functions/send-email-link/__tests__/index.test.ts:156:41)
console.log
[Evidence] Pod Logs:
[runner] GRAPHQL_ENDPOINT not set, defaulting to internal k8s service: http://constructive-server:3000/graphql
[runner] Function 'functions/send-email-link/src/index.ts' listening on port 8080
[knative-job-fn] INFO: Incoming job request {
"method": "POST",
"path": "/",
"headers": {
"x-database-id": "00000000-0000-0000-0000-000000000000"
},
"body": {
"keys": [
"email_type",
"email"
]
}
}
[runner] Incoming Request Body: {"email_type":"unknown_type_for_validation_check","email":"test@example.com"}
at Object.<anonymous> (functions/send-email-link/__tests__/index.test.ts:160:41)
[test-connector] INFO: 🧹 Closing all PgTestClients...
[test-connector] SUCCESS: ✅ Closed client for send_email_link_test_90182
[test-connector] SUCCESS: ✅ Closed client for send_email_link_test_90182
[test-connector] SUCCESS: ✅ Closed client for send_email_link_test_90182
[test-connector] INFO: 🧯 Disposing pg pools...
[test-connector] INFO: 🗑️ Dropping seen databases...
[test-connector] WARN: 🧨 Dropped database: send_email_link_test_90182
[test-connector] SUCCESS: ✅ All PgTestClients closed, pools disposed, databases dropped.
PASS functions/send-email-link/__tests__/index.test.ts (8.968 s)
Send Email Link Function (Integration)
✓ should orchestrate send-email-link service and verify trigger (6181 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 9.127 s
Ran all test suites matching functions/send-email-link/__tests__/index.test.ts.
==============================================================
[Runner] Starting test for: simple-bash (Job: test-simple-bash-1769557412)
[Runner] Waiting for job test-simple-bash-1769557412 to complete...
[Runner] simple-bash: Succeeded
[Runner] Fetching logs for test-simple-bash-1769557412-xcrb2...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
console.log
[Test] Orchestrating Job: simple-bash-exec-1769557416
at Object.<anonymous> (functions/simple-bash/__tests__/index.test.ts:35:17)
console.log
[Test] Waiting for job simple-bash-exec-1769557416 to complete...
at Object.<anonymous> (functions/simple-bash/__tests__/index.test.ts:76:17)
console.log
Job Logs: Hello Bash! Arguments: arg1
Done.
at Object.<anonymous> (functions/simple-bash/__tests__/index.test.ts:114:25)
PASS functions/simple-bash/__tests__/index.test.ts (7.337 s)
Simple Bash Function (Integration)
✓ should orchestrate simple-bash job (5145 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 7.484 s
Ran all test suites matching functions/simple-bash/__tests__/index.test.ts.
==============================================================
[Runner] Starting test for: simple-email (Job: test-simple-email-1769557424)
[Runner] Waiting for job test-simple-email-1769557424 to complete...
[Runner] simple-email: Succeeded
[Runner] Fetching logs for test-simple-email-1769557424-zrh7l...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
[test-connector] INFO: 🔌 New PgTestClient connected to simple_email_test_27236
[test-connector] INFO: 🔌 New PgTestClient connected to simple_email_test_27236
[test-connector] INFO: 🔌 New PgTestClient connected to simple_email_test_27236
console.log
[Test] Waiting for pod for job simple-email-exec-1769557432 to be Running...
at Object.<anonymous> (functions/simple-email/__tests__/index.test.ts:96:17)
console.log
[Test] Found Pod: simple-email-exec-1769557432-mdvs4
at Object.<anonymous> (functions/simple-email/__tests__/index.test.ts:111:33)
console.log
[Test] Service is listening! Success.
at Object.<anonymous> (functions/simple-email/__tests__/index.test.ts:121:37)
console.log
[Test] Invoking simple-email via proxy...
at Object.<anonymous> (functions/simple-email/__tests__/index.test.ts:126:37)
console.log
[Test] Invocation Response: {"error":"Forbidden"}
at Object.<anonymous> (functions/simple-email/__tests__/index.test.ts:134:37)
console.log
[Evidence] Pod Logs:
[runner] GRAPHQL_ENDPOINT not set, defaulting to internal k8s service: http://constructive-server:3000/graphql
[runner] Function 'functions/simple-email/src/index.ts' listening on port 8080
[knative-job-fn] INFO: Incoming job request {
"method": "POST",
"path": "/",
"headers": {},
"body": {
"keys": [
"to",
"subject",
"text"
]
}
}
[runner] Incoming Request Body: {"to":"test@example.com","subject":"Integration Test","text":"Hello World"}
[simple-email] processing request
Error: Forbidden
at IncomingMessage.<anonymous> (/app/node_modules/.pnpm/mailgun-js@0.22.0/node_modules/mailgun-js/lib/request.js:327:17)
at IncomingMessage.emit (node:events:536:35)
at IncomingMessage.emit (node:domain:489:12)
at endReadableNT (node:internal/streams/readable:1698:12)
at processTicksAndRejections (node:internal/process/task_queues:82:21) {
statusCode: 401
}
at Object.<anonymous> (functions/simple-email/__tests__/index.test.ts:139:37)
[test-connector] INFO: 🧹 Closing all PgTestClients...
[test-connector] SUCCESS: ✅ Closed client for simple_email_test_27236
[test-connector] SUCCESS: ✅ Closed client for simple_email_test_27236
[test-connector] SUCCESS: ✅ Closed client for simple_email_test_27236
[test-connector] INFO: 🧯 Disposing pg pools...
[test-connector] INFO: 🗑️ Dropping seen databases...
[test-connector] WARN: 🧨 Dropped database: simple_email_test_27236
[test-connector] SUCCESS: ✅ All PgTestClients closed, pools disposed, databases dropped.
PASS functions/simple-email/__tests__/index.test.ts (16.234 s)
Simple Email Function (Integration)
✓ should orchestrate simple-email service (13385 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 16.66 s
Ran all test suites matching functions/simple-email/__tests__/index.test.ts.
==============================================================
[Runner] Starting test for: stripe-function (Job: test-stripe-function-1769557450)
[Runner] Waiting for job test-stripe-function-1769557450 to complete...
[Runner] stripe-function: Succeeded
[Runner] Fetching logs for test-stripe-function-1769557450-sdjsc...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
console.log
[Test] Invoking stripe-fn via proxy...
at Object.<anonymous> (functions/stripe-function/__tests__/index.test.ts:74:37)
console.log
[Evidence] Pod Logs:
[runner] GRAPHQL_ENDPOINT not set, defaulting to internal k8s service: http://constructive-server:3000/graphql
[runner] Function 'functions/stripe-function/src/index.ts' listening on port 8080
[knative-job-fn] INFO: Incoming job request {
"method": "POST",
"path": "/",
"headers": {},
"body": {
"keys": [
"type"
]
}
}
[runner] Incoming Request Body: {"type":"payment_intent.succeeded"}
[stripe-fn] Request received
Stripe Error: Invalid API Key provided: sk_test_****_123
at Object.<anonymous> (functions/stripe-function/__tests__/index.test.ts:85:37)
PASS functions/stripe-function/__tests__/index.test.ts (10.96 s)
Stripe Function (Integration)
✓ should orchestrate the stripe-fn job and verify startup (8542 ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 11.553 s
Ran all test suites matching functions/stripe-function/__tests__/index.test.ts.
==============================================================
[Runner] Starting test for: twilio-sms (Job: test-twilio-sms-1769557468)
[Runner] Waiting for job test-twilio-sms-1769557468 to complete...
[Runner] twilio-sms: Succeeded
[Runner] Fetching logs for test-twilio-sms-1769557468-lhkql...
=================== EVIDENCE LOGS (STDOUT) ===================
ts-jest[config] (WARN)
The "ts-jest" config option "isolatedModules" is deprecated and will be removed in v30.0.0. Please use "isolatedModules: true" in /app/tsconfig.json instead, see https://www.typescriptlang.org/tsconfig/#isolatedModules
console.log
[dotenv@17.2.3] injecting env (0) from .env -- tip: 🔄 add secrets lifecycle management: https://dotenvx.com/ops
at _log (node_modules/.pnpm/dotenv@17.2.3/node_modules/dotenv/lib/main.js:142:11)
[test-connector] INFO: 🔌 New PgTestClient connected to twilio_sms_test_78091
[test-connector] INFO: 🔌 New PgTestClient connected to twilio_sms_test_78091
[test-connector] INFO: 🔌 New PgTestClient connected to twilio_sms_test_78091
console.log
[Test] Triggering Twilio SMS...
at Object.<anonymous> (functions/twilio-sms/__tests__/index.test.ts:101:37)
console.log
[Evidence] Function Pod Logs:
[runner] GRAPHQL_ENDPOINT not set, defaulting to internal k8s service: http://constructive-server:3000/graphql
[runner] Function 'functions/twilio-sms/src/index.ts' listening on port 8080
at Object.<anonymous> (functions/twilio-sms/__tests__/index.test.ts:122:25)
[test-connector] INFO: 🧹 Closing all PgTestClients...
[test-connector] SUCCESS: ✅ Closed client for twilio_sms_test_78091
[test-connector] SUCCESS: ✅ Closed client for twilio_sms_test_78091
[test-connector] SUCCESS: ✅ Closed client for twilio_sms_test_78091
[test-connector] INFO: 🧯 Disposing pg pools...
[test-connector] INFO: 🗑️ Dropping seen databases...
[test-connector] WARN: 🧨 Dropped database: twilio_sms_test_78091
[test-connector] SUCCESS: ✅ All PgTestClients closed, pools disposed, databases dropped.
PASS functions/twilio-sms/__tests__/index.test.ts (7.067 s)
Twilio SMS Function (Integration)
✓ should verify database connectivity via pgsql-test (25 ms)
✓ should orchestrate the twilio-sms job and verify startup (4086 ms)
Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
Snapshots: 0 total
Time: 7.282 s
Ran all test suites matching functions/twilio-sms/__tests__/index.test.ts.
==============================================================
0xj0@0xJ0s-MacBook-Pro constructive-functions %
Uh oh!
There was an error while loading. Please reload this page.
addresses:
summarized changes:
make test-k8s-all)successful tests
Details