aboutsummaryrefslogtreecommitdiff
path: root/packages/db/test/unit/db-client.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/db/test/unit/db-client.test.js')
-rw-r--r--packages/db/test/unit/db-client.test.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/packages/db/test/unit/db-client.test.js b/packages/db/test/unit/db-client.test.js
new file mode 100644
index 000000000..22df2610e
--- /dev/null
+++ b/packages/db/test/unit/db-client.test.js
@@ -0,0 +1,60 @@
+import assert from 'node:assert';
+import test, { describe } from 'node:test';
+import { parseOpts } from '../../dist/runtime/db-client.js';
+
+describe('db client config', () => {
+ test('parse config options from URL (docs example url)', () => {
+ const remoteURLToParse = new URL(
+ 'file://local-copy.db?encryptionKey=your-encryption-key&syncInterval=60&syncUrl=libsql%3A%2F%2Fyour.server.io',
+ );
+ const options = Object.fromEntries(remoteURLToParse.searchParams.entries());
+
+ const config = parseOpts(options);
+
+ assert.deepEqual(config, {
+ encryptionKey: 'your-encryption-key',
+ syncInterval: 60,
+ syncUrl: 'libsql://your.server.io',
+ });
+ });
+
+ test('parse config options from URL (test booleans without value)', () => {
+ const remoteURLToParse = new URL('file://local-copy.db?readYourWrites&offline&tls');
+ const options = Object.fromEntries(remoteURLToParse.searchParams.entries());
+
+ const config = parseOpts(options);
+
+ assert.deepEqual(config, {
+ readYourWrites: true,
+ offline: true,
+ tls: true,
+ });
+ });
+
+ test('parse config options from URL (test booleans with value)', () => {
+ const remoteURLToParse = new URL(
+ 'file://local-copy.db?readYourWrites=true&offline=true&tls=true',
+ );
+ const options = Object.fromEntries(remoteURLToParse.searchParams.entries());
+
+ const config = parseOpts(options);
+
+ assert.deepEqual(config, {
+ readYourWrites: true,
+ offline: true,
+ tls: true,
+ });
+ });
+
+ test('parse config options from URL (test numbers)', () => {
+ const remoteURLToParse = new URL('file://local-copy.db?syncInterval=60&concurrency=2');
+ const options = Object.fromEntries(remoteURLToParse.searchParams.entries());
+
+ const config = parseOpts(options);
+
+ assert.deepEqual(config, {
+ syncInterval: 60,
+ concurrency: 2,
+ });
+ });
+});