Skip to content

Commit

Permalink
Update tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jamiehewitt15 committed Mar 7, 2025
1 parent 12c098a commit 4ad10d4
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 50 deletions.
55 changes: 30 additions & 25 deletions src/test/integration/database.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -200,31 +200,36 @@ describe('IndexerDatabase CRUD', () => {
expect(result?.lastIndexedBlock).to.equal(1)
})

it('sets node version', async () => {
const testVersion = '0.2.2'
await database.indexer.setNodeVersion(testVersion)
const result = await database.indexer.getNodeVersion()
expect(result).to.equal(testVersion)
})

it('retrieves node version', async () => {
const testVersion = '0.2.3'
await database.indexer.setNodeVersion(testVersion)
const result = await database.indexer.getNodeVersion()
expect(result).to.equal(testVersion)
})

it('updates node version', async () => {
const initialVersion = '0.2.3'
const updatedVersion = '0.2.4'

await database.indexer.setNodeVersion(initialVersion)
let result = await database.indexer.getNodeVersion()
expect(result).to.equal(initialVersion)

await database.indexer.setNodeVersion(updatedVersion)
result = await database.indexer.getNodeVersion()
expect(result).to.equal(updatedVersion)
describe('Node Version Management', () => {
it('should have null version initially', async () => {
const result = await database.indexer.getNodeVersion()
assert(result === null)
})

it('sets and retrieves node version', async () => {
const testVersion = '0.2.2'
// Verify initial null state
let result = await database.indexer.getNodeVersion()
assert(result === null)

// Set version
await database.indexer.setNodeVersion(testVersion)
result = await database.indexer.getNodeVersion()
assert(result === testVersion)
})

it('updates node version', async () => {
const initialVersion = '0.2.3'
const updatedVersion = '0.2.4'

await database.indexer.setNodeVersion(initialVersion)
let result = await database.indexer.getNodeVersion()
assert(result === initialVersion)

await database.indexer.setNodeVersion(updatedVersion)
result = await database.indexer.getNodeVersion()
assert(result === updatedVersion)
})
})
})

Expand Down
38 changes: 13 additions & 25 deletions src/test/unit/indexer/indexer.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,15 @@ describe('OceanIndexer', () => {
let resetCrawlingSpy: sinon.SinonSpy

beforeEach(() => {
// Mock database
// Mock database with initial null version
mockDb = {
indexer: {
getNodeVersion: sinon.stub().resolves('0.2.0'),
getNodeVersion: sinon.stub().resolves(null), // Initially null
setNodeVersion: sinon.stub().resolves()
},
getConfig: () => ({ url: 'http://localhost:9200', dbType: 'elasticsearch' })
} as any

// Create indexer with mock networks
const mockNetworks = {
'8996': {
chainId: 8996,
Expand All @@ -66,46 +65,35 @@ describe('OceanIndexer', () => {
}
} as RPCS
indexer = new OceanIndexer(mockDb as Database, mockNetworks)

// Spy on resetCrawling method
resetCrawlingSpy = sinon.spy(indexer, 'resetCrawling')
})

afterEach(() => {
sinon.restore()
})

it('should not trigger reindexing when database version is current', async () => {
// Mock getCurrentVersion to return same as DB version
sinon.stub(indexer as any, 'getCurrentVersion').returns('0.2.2')

await indexer.checkAndTriggerReindexing()

assert(resetCrawlingSpy.notCalled, 'resetCrawling should not be called')
assert(
(mockDb.indexer.setNodeVersion as sinon.SinonStub).notCalled,
'setNodeVersion should not be called'
)
it('should have null version initially', async () => {
const version = await mockDb.indexer.getNodeVersion()
assert(version === null, 'Initial version should be null')
})

it('should trigger reindexing when database version is old', async () => {
// Mock getCurrentVersion to return newer version
sinon.stub(indexer as any, 'getCurrentVersion').returns('0.2.2')
// Mock DB to return older version
mockDb.indexer.getNodeVersion = sinon.stub().resolves('0.2.0')
it('should trigger reindexing and set version when version is null', async () => {
const currentVersion = '0.2.2'
sinon.stub(indexer as any, 'getCurrentVersion').returns(currentVersion)

await indexer.checkAndTriggerReindexing()

assert(resetCrawlingSpy.calledOnce, 'resetCrawling should be called once')
assert(
(mockDb.indexer.setNodeVersion as sinon.SinonStub).calledWith('0.2.2'),
'setNodeVersion should be called with new version'
(mockDb.indexer.setNodeVersion as sinon.SinonStub).calledWith(currentVersion),
'setNodeVersion should be called with current version'
)
})

it('should trigger reindexing when database version is null', async () => {
it('should trigger reindexing when database version is old', async () => {
// Set an old version in DB
mockDb.indexer.getNodeVersion = sinon.stub().resolves('0.2.0')
sinon.stub(indexer as any, 'getCurrentVersion').returns('0.2.2')
mockDb.indexer.getNodeVersion = sinon.stub().resolves(null)

await indexer.checkAndTriggerReindexing()

Expand Down

0 comments on commit 4ad10d4

Please sign in to comment.