Skip to content

Commit

Permalink
Merge pull request #245 from tursodatabase/fix-sync
Browse files Browse the repository at this point in the history
add tests against sqld in the CI
  • Loading branch information
penberg committed Aug 5, 2024
2 parents 29c32f4 + e0f5f1d commit 7803649
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 1 deletion.
30 changes: 30 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,36 @@ on:
pull_request:

jobs:
"test-against-sqld":
name: "Tests against sqld"
runs-on: ubuntu-latest
timeout-minutes: 2
defaults:
run:
working-directory: ./packages/libsql-client
env: { "NODE_OPTIONS": "--trace-warnings" }
steps:
- name: "Checkout this repo"
uses: actions/checkout@v3
- name: "Setup Node.js"
uses: actions/setup-node@v3
with:
node-version: "18.x"
- name: "Build core"
run: "npm ci && npm run build"
working-directory: ./packages/libsql-core
- name: "Install npm dependencies"
run: "npm ci"
- name: "Build"
run: "npm run build"
- name: Run Docker container in the background
run: docker run -d -p 8080:8080 -e SQLD_NODE=primary ghcr.io/tursodatabase/libsql-server:latest
- name: Verify container is running
run: docker ps
- name: "Test against sqld"
run: "npm test"
env: { "URL": "http://localhost:8080", "SERVER": "sqld" }

"wasm-test":
name: "Build and test Wasm on Node.js"
runs-on: ubuntu-latest
Expand Down
33 changes: 32 additions & 1 deletion packages/libsql-client/src/__tests__/client.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,10 @@ const isFile = config.url.startsWith("file:");
// - "sqld" is sqld
const server = process.env.SERVER ?? "test_v3";

const isSqld = server === "sqld";
const hasHrana2 = server !== "test_v1";
const hasHrana3 = server !== "test_v1" && server !== "test_v2";
const hasHrana3 =
server !== "test_v1" && server !== "test_v2" && server !== "sqld";
const hasNetworkErrors =
isWs &&
(server === "test_v1" || server === "test_v2" || server === "test_v3");
Expand Down Expand Up @@ -1426,3 +1428,32 @@ describe("transaction()", () => {
c.close();
}
});

(isSqld ? test : test.skip)("embedded replica test", async () => {
const remote = createClient(config);
const embedded = createClient({
...config,
url: "file:///tmp/local.db",
syncUrl: config.url,
});
await remote.execute("CREATE TABLE embedded(a)");
await embedded.sync();

let embedded1 = await embedded.execute("SELECT * FROM embedded");
expect(embedded1.columns).toStrictEqual(["a"]);
expect(embedded1.rows.length).toStrictEqual(0);

await remote.execute("INSERT INTO embedded VALUES (1), (2), (3)");
let embedded2 = await embedded.execute("SELECT * FROM embedded");
expect(embedded2.columns).toStrictEqual(["a"]);
expect(embedded2.rows.length).toStrictEqual(0);

let remote1 = await remote.execute("SELECT * FROM embedded");
expect(remote1.columns).toStrictEqual(["a"]);
expect(remote1.rows.length).toStrictEqual(3);

await embedded.sync();
let embedded3 = await embedded.execute("SELECT * FROM embedded");
expect(embedded3.columns).toStrictEqual(["a"]);
expect(embedded3.rows.length).toStrictEqual(3);
});

0 comments on commit 7803649

Please sign in to comment.