Skip to content
This repository has been archived by the owner on Sep 17, 2024. It is now read-only.

Commit

Permalink
feat(CI): Create CI for testing all modules based on a known-good eng…
Browse files Browse the repository at this point in the history
…ine commit (#56)
  • Loading branch information
Blckbrry-Pi authored Mar 7, 2024
2 parents cd58433 + a9d20d0 commit 9d0a07d
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 7 deletions.
42 changes: 42 additions & 0 deletions .github/workflows/test-all.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Test all modules E2E
on:
- push

env:
CURRENT_WORKING_ENGINE_COMMIT: 920ac277dd0f5378cf8c3cc1ae414340dc6d76a6

jobs:
build:
runs-on: ubuntu-20.04
steps:
# Checkout registry repo
- name: Checkout registry Repo
uses: actions/checkout@v4
with:
path: opengb-registry

# Get engine repo to test against
- name: Fetch engine repo
uses: actions/checkout@v4
with:
repository: rivet-gg/opengb
ssh-key: ${{ secrets.GH_DEPLOY_KEY }}
path: opengb

# Get a version of the engine that we know works
- name: Checkout to working commit
run: cd opengb/ && git checkout $CURRENT_WORKING_ENGINE_COMMIT

# Install Deno to run OpenGB
- name: Install Deno
uses: denoland/setup-deno@v1
with:
deno-version: "1.41.1"

# Install OpenGB
- name: Install OpenGB
run: cd opengb/ && deno task cli:install

# Run tests on all modules in the registry
- name: Run Tests for all modules
run: cd ./opengb-registry/tests/basic && opengb test
14 changes: 7 additions & 7 deletions modules/tokens/tests/validate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,23 +34,23 @@ test(
test(
"validate token expired",
async (ctx: TestContext) => {
const { token } = await ctx.call("tokens", "create", {
const { token } = await ctx.modules.tokens.create({
type: "test",
meta: { foo: "bar" },
expireAt: new Date(Date.now() + 100).toISOString(),
}) as any;
expireAt: new Date(Date.now() + 1000).toISOString(),
});

// Token should be valid
let validateRes = await ctx.call("tokens", "validate", {
const validateRes = await ctx.modules.tokens.validate({
token: token.token,
}) as any;
});
assertEquals(token.id, validateRes.token.id);

// Wait for token to expire
await new Promise((resolve) => setTimeout(resolve, 200));
await new Promise((resolve) => setTimeout(resolve, 1100));

const error = await assertRejects(async () => {
await ctx.call("tokens", "validate", { token: token.token }) as any;
await ctx.modules.tokens.validate({ token: token.token });
}, RuntimeError);
assertEquals(error.code, "TOKEN_EXPIRED");
},
Expand Down
10 changes: 10 additions & 0 deletions tests/basic/backend.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
registries:
default:
local:
directory: ../../modules
modules:
currency: {}
friends: {}
rate_limit: {}
tokens: {}
users: {}

0 comments on commit 9d0a07d

Please sign in to comment.