From 5903e41a83c9b32ff3fc8d60abd974541f0199b5 Mon Sep 17 00:00:00 2001 From: haad Date: Thu, 16 Feb 2023 12:29:54 +0200 Subject: [PATCH 1/4] Run all tests --- test/keyvalue.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/keyvalue.spec.js b/test/keyvalue.spec.js index 52ac611..fed2ad2 100644 --- a/test/keyvalue.spec.js +++ b/test/keyvalue.spec.js @@ -23,7 +23,7 @@ const { createIdentity } = IdentityProvider const OpLog = { Log, Entry, IPFSBlockStorage, LevelStorage } Object.keys(testAPIs).forEach((IPFS) => { - describe.only('KeyValue Database (' + IPFS + ')', function () { + describe('KeyValue Database (' + IPFS + ')', function () { this.timeout(config.timeout) let ipfsd1, ipfsd2 From 967abafb8d930bb4ef0929ca8f215b279b8931c0 Mon Sep 17 00:00:00 2001 From: haad Date: Thu, 16 Feb 2023 12:32:00 +0200 Subject: [PATCH 2/4] Re-organize oplog tests --- test/{log-append.spec.js => oplog/append.test.js} | 8 ++++---- test/{log-crdt.spec.js => oplog/crdt.test.js} | 8 ++++---- test/{entry.spec.js => oplog/entry.test.js} | 6 +++--- test/{log-heads.spec.js => oplog/heads.test.js} | 8 ++++---- .../iterator.test.js} | 10 +++++----- .../join-concurrent.test.js} | 8 ++++---- test/{log-join.spec.js => oplog/join.test.js} | 12 ++++++------ test/{log-load.spec.js => oplog/load.test.js} | 14 +++++++------- test/{ => oplog}/log.spec.js | 10 +++++----- .../references.test.js} | 8 ++++---- test/{ => oplog}/replicate.spec.js | 8 ++++---- test/{ => oplog}/signed-log.spec.js | 8 ++++---- test/{ => oplog}/utils/log-creator.js | 0 13 files changed, 54 insertions(+), 54 deletions(-) rename test/{log-append.spec.js => oplog/append.test.js} (95%) rename test/{log-crdt.spec.js => oplog/crdt.test.js} (97%) rename test/{entry.spec.js => oplog/entry.test.js} (97%) rename test/{log-heads.spec.js => oplog/heads.test.js} (96%) rename test/{log-iterator.spec.js => oplog/iterator.test.js} (97%) rename test/{log-join-concurrent.spec.js => oplog/join-concurrent.test.js} (93%) rename test/{log-join.spec.js => oplog/join.test.js} (97%) rename test/{log-load.spec.js => oplog/load.test.js} (98%) rename test/{ => oplog}/log.spec.js (96%) rename test/{log-references.spec.js => oplog/references.test.js} (97%) rename test/{ => oplog}/replicate.spec.js (96%) rename test/{ => oplog}/signed-log.spec.js (96%) rename test/{ => oplog}/utils/log-creator.js (100%) diff --git a/test/log-append.spec.js b/test/oplog/append.test.js similarity index 95% rename from test/log-append.spec.js rename to test/oplog/append.test.js index c93b8cd..e40634d 100644 --- a/test/log-append.spec.js +++ b/test/oplog/append.test.js @@ -1,10 +1,10 @@ import { strictEqual, deepStrictEqual } from 'assert' import rimraf from 'rimraf' import { copy } from 'fs-extra' -import Log from '../src/log.js' -import MemoryStorage from '../src/storage/memory.js' -import IdentityProvider from '../src/identities/index.js' -import KeyStore from '../src/key-store.js' +import Log from '../../src/log.js' +import MemoryStorage from '../../src/storage/memory.js' +import IdentityProvider from '../../src/identities/index.js' +import KeyStore from '../../src/key-store.js' // Test utils import { config, testAPIs } from 'orbit-db-test-utils' diff --git a/test/log-crdt.spec.js b/test/oplog/crdt.test.js similarity index 97% rename from test/log-crdt.spec.js rename to test/oplog/crdt.test.js index 048bc14..d82f09e 100644 --- a/test/log-crdt.spec.js +++ b/test/oplog/crdt.test.js @@ -1,10 +1,10 @@ import { strictEqual, deepStrictEqual } from 'assert' import rimraf from 'rimraf' import { copy } from 'fs-extra' -import Log from '../src/log.js' -import IdentityProvider from '../src/identities/index.js' -import KeyStore from '../src/key-store.js' -import MemoryStorage from '../src/storage/memory.js' +import Log from '../../src/log.js' +import IdentityProvider from '../../src/identities/index.js' +import KeyStore from '../../src/key-store.js' +import MemoryStorage from '../../src/storage/memory.js' // Test utils import { config, testAPIs } from 'orbit-db-test-utils' diff --git a/test/entry.spec.js b/test/oplog/entry.test.js similarity index 97% rename from test/entry.spec.js rename to test/oplog/entry.test.js index 9ad48c8..008fe23 100644 --- a/test/entry.spec.js +++ b/test/oplog/entry.test.js @@ -1,9 +1,9 @@ import { strictEqual, deepStrictEqual } from 'assert' import rimraf from 'rimraf' import { copy } from 'fs-extra' -import Entry from '../src/entry.js' -import IdentityProvider from '../src/identities/index.js' -import KeyStore from '../src/key-store.js' +import Entry from '../../src/entry.js' +import IdentityProvider from '../../src/identities/index.js' +import KeyStore from '../../src/key-store.js' import { config, testAPIs, startIpfs, stopIpfs } from 'orbit-db-test-utils' // import IdentityStorage from '../src/identity-storage.js' // import IPFSBlockStorage from '../src/ipfs-block-storage.js' diff --git a/test/log-heads.spec.js b/test/oplog/heads.test.js similarity index 96% rename from test/log-heads.spec.js rename to test/oplog/heads.test.js index fa33779..0545d01 100644 --- a/test/log-heads.spec.js +++ b/test/oplog/heads.test.js @@ -1,10 +1,10 @@ import { strictEqual, deepStrictEqual } from 'assert' import rimraf from 'rimraf' import { copy } from 'fs-extra' -import Log from '../src/log.js' -import IdentityProvider from '../src/identities/index.js' -import KeyStore from '../src/key-store.js' -import MemoryStorage from '../src/storage/memory.js' +import Log from '../../src/log.js' +import IdentityProvider from '../../src/identities/index.js' +import KeyStore from '../../src/key-store.js' +import MemoryStorage from '../../src/storage/memory.js' // Test utils import { config, testAPIs } from 'orbit-db-test-utils' diff --git a/test/log-iterator.spec.js b/test/oplog/iterator.test.js similarity index 97% rename from test/log-iterator.spec.js rename to test/oplog/iterator.test.js index 4e8922e..8d0030e 100644 --- a/test/log-iterator.spec.js +++ b/test/oplog/iterator.test.js @@ -1,15 +1,15 @@ import { strictEqual, deepStrictEqual } from 'assert' import rimraf from 'rimraf' -import Log from '../src/log.js' -import IdentityProvider from '../src/identities/index.js' -import KeyStore from '../src/key-store.js' +import Log from '../../src/log.js' +import IdentityProvider from '../../src/identities/index.js' +import KeyStore from '../../src/key-store.js' import LogCreator from './utils/log-creator.js' import all from 'it-all' -import MemoryStorage from '../src/storage/memory.js' +import MemoryStorage from '../../src/storage/memory.js' // Test utils import { config, testAPIs, startIpfs, stopIpfs } from 'orbit-db-test-utils' -import { identityKeys, signingKeys } from './fixtures/orbit-db-identity-keys.js' +import { identityKeys, signingKeys } from '../fixtures/orbit-db-identity-keys.js' const { sync: rmrf } = rimraf const { createIdentity } = IdentityProvider diff --git a/test/log-join-concurrent.spec.js b/test/oplog/join-concurrent.test.js similarity index 93% rename from test/log-join-concurrent.spec.js rename to test/oplog/join-concurrent.test.js index 2931fe2..89aa767 100644 --- a/test/log-join-concurrent.spec.js +++ b/test/oplog/join-concurrent.test.js @@ -1,10 +1,10 @@ import { strictEqual, deepStrictEqual } from 'assert' import rimraf from 'rimraf' import { copy } from 'fs-extra' -import Log from '../src/log.js' -import IdentityProvider from '../src/identities/index.js' -import KeyStore from '../src/key-store.js' -import MemoryStorage from '../src/storage/memory.js' +import Log from '../../src/log.js' +import IdentityProvider from '../../src/identities/index.js' +import KeyStore from '../../src/key-store.js' +import MemoryStorage from '../../src/storage/memory.js' // Test utils import { config, testAPIs } from 'orbit-db-test-utils' diff --git a/test/log-join.spec.js b/test/oplog/join.test.js similarity index 97% rename from test/log-join.spec.js rename to test/oplog/join.test.js index 16e7af3..a23d16e 100644 --- a/test/log-join.spec.js +++ b/test/oplog/join.test.js @@ -1,14 +1,14 @@ import { strictEqual, notStrictEqual, deepStrictEqual } from 'assert' import rimraf from 'rimraf' -import Clock from '../src/lamport-clock.js' -import Log from '../src/log.js' -import IdentityProvider from '../src/identities/index.js' -import KeyStore from '../src/key-store.js' -import MemoryStorage from '../src/storage/memory.js' +import Clock from '../../src/lamport-clock.js' +import Log from '../../src/log.js' +import IdentityProvider from '../../src/identities/index.js' +import KeyStore from '../../src/key-store.js' +import MemoryStorage from '../../src/storage/memory.js' // Test utils import { config, testAPIs } from 'orbit-db-test-utils' -import { identityKeys, signingKeys } from './fixtures/orbit-db-identity-keys.js' +import { identityKeys, signingKeys } from '../fixtures/orbit-db-identity-keys.js' const { sync: rmrf } = rimraf const { createIdentity } = IdentityProvider diff --git a/test/log-load.spec.js b/test/oplog/load.test.js similarity index 98% rename from test/log-load.spec.js rename to test/oplog/load.test.js index 2603d9c..a77039f 100644 --- a/test/log-load.spec.js +++ b/test/oplog/load.test.js @@ -1,14 +1,14 @@ import { strictEqual, deepStrictEqual, notStrictEqual, throws } from 'assert' import rimraf from 'rimraf' import { copy } from 'fs-extra' -import Sorting from '../src/sorting/log.js' -import bigLogString from './fixtures/big-log.fixture.js' -import Entry from '../src/entry.js' -import Log from '../src/log.js' -import IdentityProvider from '../src/identities/index.js' -import KeyStore from '../src/key-store.js' +import Sorting from '../../src/sorting/log.js' +import bigLogString from '../fixtures/big-log.fixture.js' +import Entry from '../../src/entry.js' +import Log from '../../src/log.js' +import IdentityProvider from '../../src/identities/index.js' +import KeyStore from '../../src/key-store.js' import LogCreator from './utils/log-creator.js' -import MemoryStorage from '../src/storage/memory.js' +import MemoryStorage from '../../src/storage/memory.js' // Test utils import { config, MemStore, testAPIs, startIpfs, stopIpfs } from 'orbit-db-test-utils' diff --git a/test/log.spec.js b/test/oplog/log.spec.js similarity index 96% rename from test/log.spec.js rename to test/oplog/log.spec.js index 80ce10d..d8a3ce3 100644 --- a/test/log.spec.js +++ b/test/oplog/log.spec.js @@ -1,11 +1,11 @@ import { notStrictEqual, deepStrictEqual, strictEqual } from 'assert' import rimraf from 'rimraf' -import Entry from '../src/entry.js' -import Log from '../src/log.js' -import IdentityProvider from '../src/identities/index.js' -import KeyStore from '../src/key-store.js' +import Entry from '../../src/entry.js' +import Log from '../../src/log.js' +import IdentityProvider from '../../src/identities/index.js' +import KeyStore from '../../src/key-store.js' import { copy } from 'fs-extra' -import MemoryStorage from '../src/storage/memory.js' +import MemoryStorage from '../../src/storage/memory.js' // Test utils import { config, testAPIs } from 'orbit-db-test-utils' diff --git a/test/log-references.spec.js b/test/oplog/references.test.js similarity index 97% rename from test/log-references.spec.js rename to test/oplog/references.test.js index 675683b..f9b32c4 100644 --- a/test/log-references.spec.js +++ b/test/oplog/references.test.js @@ -1,10 +1,10 @@ import { strictEqual } from 'assert' import rimraf from 'rimraf' import { copy } from 'fs-extra' -import Log from '../src/log.js' -import IdentityProvider from '../src/identities/index.js' -import KeyStore from '../src/key-store.js' -import MemoryStorage from '../src/storage/memory.js' +import Log from '../../src/log.js' +import IdentityProvider from '../../src/identities/index.js' +import KeyStore from '../../src/key-store.js' +import MemoryStorage from '../../src/storage/memory.js' // Test utils import { config, testAPIs } from 'orbit-db-test-utils' diff --git a/test/replicate.spec.js b/test/oplog/replicate.spec.js similarity index 96% rename from test/replicate.spec.js rename to test/oplog/replicate.spec.js index 7482ebf..1d4f352 100644 --- a/test/replicate.spec.js +++ b/test/oplog/replicate.spec.js @@ -1,10 +1,10 @@ import { strictEqual } from 'assert' import rimraf from 'rimraf' import { copy } from 'fs-extra' -import { Log, Entry } from '../src/index.js' -import { MemoryStorage, IPFSBlockStorage } from '../src/storage/index.js' -import IdentityProvider from '../src/identities/index.js' -import KeyStore from '../src/key-store.js' +import { Log, Entry } from '../../src/index.js' +import { MemoryStorage, IPFSBlockStorage } from '../../src/storage/index.js' +import IdentityProvider from '../../src/identities/index.js' +import KeyStore from '../../src/key-store.js' // Test utils import { config, testAPIs, startIpfs, stopIpfs, getIpfsPeerId, waitForPeers, connectPeers } from 'orbit-db-test-utils' diff --git a/test/signed-log.spec.js b/test/oplog/signed-log.spec.js similarity index 96% rename from test/signed-log.spec.js rename to test/oplog/signed-log.spec.js index db05e85..7c8cada 100644 --- a/test/signed-log.spec.js +++ b/test/oplog/signed-log.spec.js @@ -1,12 +1,12 @@ import { notStrictEqual, strictEqual, deepStrictEqual } from 'assert' import rimraf from 'rimraf' -import Log from '../src/log.js' -import IdentityProvider from '../src/identities/index.js' -import KeyStore from '../src/key-store.js' +import Log from '../../src/log.js' +import IdentityProvider from '../../src/identities/index.js' +import KeyStore from '../../src/key-store.js' // Test utils import { config, testAPIs } from 'orbit-db-test-utils' -import { identityKeys, signingKeys, createTestIdentities, cleanUpTestIdentities } from './fixtures/orbit-db-identity-keys.js' +import { identityKeys, signingKeys, createTestIdentities, cleanUpTestIdentities } from '../fixtures/orbit-db-identity-keys.js' const { sync: rmrf } = rimraf const { createIdentity } = IdentityProvider diff --git a/test/utils/log-creator.js b/test/oplog/utils/log-creator.js similarity index 100% rename from test/utils/log-creator.js rename to test/oplog/utils/log-creator.js From 96f07d6e2be16a9012a149aadba4974ee558c6f0 Mon Sep 17 00:00:00 2001 From: haad Date: Thu, 16 Feb 2023 12:32:31 +0200 Subject: [PATCH 3/4] Fix peer sending messages to themselves --- src/db/interface.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/db/interface.js b/src/db/interface.js index 85c92e7..65ab7e6 100644 --- a/src/db/interface.js +++ b/src/db/interface.js @@ -28,8 +28,7 @@ const Database = async ({ OpLog, ipfs, identity, databaseId, accessController, s const messageIsNotFromMe = (message) => String(peerId) !== String(message.from) const messageHasData = (message) => message.data !== undefined try { - // if (messageIsNotFromMe(message) && messageHasData(message)) { - if (messageHasData(message)) { + if (messageIsNotFromMe(message) && messageHasData(message)) { await sync(message.data) } } catch (e) { @@ -50,8 +49,8 @@ const Database = async ({ OpLog, ipfs, identity, databaseId, accessController, s } const close = async () => { - await log.close() await ipfs.pubsub.unsubscribe(log.id, handleMessage) + await log.close() events.emit('close') } From d2ccecc929cdde2fdcb448252e89ecf486673701 Mon Sep 17 00:00:00 2001 From: haad Date: Thu, 16 Feb 2023 12:32:58 +0200 Subject: [PATCH 4/4] Run tests only with js-ipfs --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c14e008..10d9491 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,7 @@ "examples:browser-webpack": "open-cli examples/browser/browser-webpack-example/index.html", "lint:docs": "remark -qf -u validate-links .", "test:all": "npm run test:browser-multiple-tabs && npm run test", - "test": "cross-env TEST=all mocha --config test/.mocharc.json", + "test": "cross-env TEST=js mocha --config test/.mocharc.json", "test:browser-multiple-tabs": "npm run build:dist && cpy dist/orbitdb.min.js ./test/browser/ --rename=orbitdb.js --flat && cpy node_modules/ipfs/dist/index.min.js ./test/browser --rename=ipfs.js --flat && cpy node_modules/orbit-db-identity-provider/dist/orbit-db-identity-provider.min.js ./test/browser --rename=identities.js --flat && cpy node_modules/ipfs-log/dist/ipfslog.min.js ./test/browser --flat && mocha ./test/browser/concurrent.spec.js", "build": "npm run build:dist && npm run build:debug", "build:examples": "webpack --config conf/webpack.example.config.js",