Skip to content

Commit

Permalink
chore: change storage implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
AmeanAsad committed Oct 12, 2023
1 parent 747d780 commit 8dec1c7
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 51 deletions.
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class Saturn {
* @param {number} [opts.connectTimeout=5000]
* @param {number} [opts.downloadTimeout=0]
* @param {string} [opts.orchURL]
* @param {import('./utils/storage.js').Storage} [opts.storage]
* @param {import('./storage/index.js').Storage} [opts.storage]
*/
constructor (opts = {}) {
this.opts = Object.assign({}, {
Expand Down Expand Up @@ -308,7 +308,7 @@ class Saturn {
let origin = opts.orchURL

let cachedNodesList
if (this.storage && this.storage.check()) {
if (this.storage) {
cachedNodesList = this.storage.get(this.nodesListKey)
}

Expand Down
38 changes: 0 additions & 38 deletions src/utils/storage.js

This file was deleted.

14 changes: 4 additions & 10 deletions test/fallback.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { generateNodes, getMockServer, mockOrchHandler } from './test-utils.js'
const TEST_DEFAULT_ORCH = 'https://orchestrator.strn.pl/nodes?maxNodes=100'
const TEST_NODES_LIST_KEY = 'saturn-nodes'
const TEST_ORIGIN_DOMAIN = 'saturn.ms'

const CLIENT_KEY = 'key'
describe('Client Fallback', () => {
test('Nodes are loaded from the orchestrator if no storage is passed', async (t) => {
const handlers = [
Expand All @@ -20,7 +20,7 @@ describe('Client Fallback', () => {
const expectedNodes = generateNodes(2, TEST_ORIGIN_DOMAIN)

// No Storage is injected
const saturn = new Saturn()
const saturn = new Saturn({ clientKey: CLIENT_KEY })
const mockOpts = { orchURL: TEST_DEFAULT_ORCH }

await saturn._loadNodes(mockOpts)
Expand All @@ -42,24 +42,21 @@ describe('Client Fallback', () => {

// Mocking storage object
const mockStorage = {
check: () => true,
get: async (key) => null,
set: async (key, value) => null,
delete: async (key) => null
}
t.mock.method(mockStorage, 'get')
t.mock.method(mockStorage, 'check')
t.mock.method(mockStorage, 'set')

const saturn = new Saturn({ storage: mockStorage })
const saturn = new Saturn({ storage: mockStorage, clientKey: CLIENT_KEY })

// Mocking options
const mockOpts = { orchURL: TEST_DEFAULT_ORCH }

await saturn._loadNodes(mockOpts)

// Assert that all the storage methods were called twice.
assert.strictEqual(mockStorage.check.mock.calls.length, 2)
assert.strictEqual(mockStorage.set.mock.calls.length, 2)
assert.strictEqual(mockStorage.get.mock.calls.length, 2)

Expand All @@ -83,23 +80,20 @@ describe('Client Fallback', () => {

// Mocking storage object
const mockStorage = {
check: () => true,
get: async (key) => { return Promise.resolve(JSON.stringify(expectedNodes.slice(2, 4))) },
set: async (key, value) => { return null }
}
t.mock.method(mockStorage, 'get')
t.mock.method(mockStorage, 'check')
t.mock.method(mockStorage, 'set')

const saturn = new Saturn({ storage: mockStorage })
const saturn = new Saturn({ storage: mockStorage, clientKey: CLIENT_KEY })

// Mocking options
const mockOpts = { orchURL: TEST_DEFAULT_ORCH }

await saturn._loadNodes(mockOpts)

// Assert that all the storage methods were called twice.
assert.strictEqual(mockStorage.check.mock.calls.length, 2)
assert.strictEqual(mockStorage.set.mock.calls.length, 2)
assert.strictEqual(mockStorage.get.mock.calls.length, 2)

Expand Down

0 comments on commit 8dec1c7

Please sign in to comment.