0.9.0 • Published 2 years ago

@databank/algolia-mock-server v0.9.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

algolia-server-mock

:warning: this package is work in progress do not rely sole on it for unit testings!

latest License: MIT

algolia-mock-server is a personal effort to create an algoliasearch compatible server counterpart that mimics the functionality of Algolia REST Api.

It is primarely ment for unit testing in TypeScript projects.

Usage

Install

npm install --save-dev @databank/algolia-mock-server

Usage in unit tests

// Algolia client
import algoliasearch from 'algoliasearch';
// algolia-mock-server can distinguish between admin and read only credentials,
// and will fail writing to index if using read key, 
// and when using admin key it will retrieve unretrievable attributes

const mockWriteKey = "ADMINKEY"
const mockReadKey = "READKEY"
const client = algoliasearch('YourApplicationID', mockWriteKey , {
	hosts: [{ url: 'localhost:3000', protocol: 'http' }],
});

// algolia-server-mock
import { createServer, } from 'http';
import { httpHandler, mockStorageMemory } from '@databank/algolia-mock-server';

const storage = mockStorageMemory();
const server = createServer(httpHandler(storage));

beforeAll(() => server.listen(3000));
afterAll(() => server.close());

test('TestMyFunction', async () => {

	await myFunctionThatWritesToAlgolia();

	const index = client.initIndex('my_data_index');
	const algoliaObject = await index.getObject("test");

	expect( algoliaObject ).toStrictEqual( expectedObject )
})

Coverage

Algolia Client Coverage (npm algoliasearch)

  • index.search() - partial
  • index.searchForFacetValues() - partial
  • index.findObject()
  • index.getObjectPosition()
  • index.getObject()
  • index.saveObject()
  • index.saveObjects()
  • index.partialUpdateObject()
  • index.partialUpdateObjects()
  • index.replaceAllObjects()
  • index.deleteObject()
  • index.deleteObjects()
  • index.deleteBy()
  • index.clearObjects()
  • index.batch() - partial

  • index.saveSynonym()

  • index.replaceAllSynonyms()
  • index.deleteSynonym()
  • index.clearSynonyms()

  • index.saveRule()

  • index.saveRules()
  • index.replaceAllRules()
  • index.deleteRule()
  • index.clearRules()

  • index.getSettings()

  • index.setSettings() - partial

  • index.delete()

  • client.multipleQueries() - partial

  • client.multipleGetObjects()
  • client.moveIndex()
  • client.copyIndex()
  • client.copyRules()
  • client.copySynonyms()
  • client.copySettings()
  • client.addApiKey()
  • client.updateApiKey()
  • client.deleteApiKey()
  • client.multipleBatch()

REST API Coverage

  • Index
    • Get Settings
    • Set Settings - partial
  • Search - partial
  • Search for facet values - partial
  • Browse index
  • Single object operations
    • Get Object index.getObject()
      • support for attributesToRetrieve
      • nested attributesToRetrieve eg. invoice.lines.*.name
      • skip unretrievableAttributes - skipping nested attributes still in progress
    • Delete object
  • Multi object operations
    • Add/Replace Object
    • Delete by Query
    • Clear Objects used by index.clearObjects()
    • Partially update objects
    • Batch write operations
      • addObject
      • updateObject used by index.saveObject() and index.saveObjects()
      • partialUpdateObject
      • partialUpdateObjectNoCreate
      • deleteObject used by index.deleteObject() and index.deleteObjects()
      • delete
      • clear
    • Batch write operations - multiple indexes
    • Get objects
  • Multi index operations x Search multiple indexes - partial
0.7.0-canary.17

2 years ago

0.4.0-canary.4

2 years ago

0.7.0-canary.16

2 years ago

0.4.0-canary.2

2 years ago

0.7.0-canary.19

2 years ago

0.6.0-canary.12

2 years ago

0.7.0-canary.13

2 years ago

0.6.0-canary.11

2 years ago

0.5.0-canary.1

2 years ago

0.5.0-canary.2

2 years ago

0.4.0-canary.13

2 years ago

0.5.0-canary.10

2 years ago

0.5.0-canary.3

2 years ago

0.5.0-canary.4

2 years ago

0.5.0-canary.5

2 years ago

0.5.0-canary.6

2 years ago

0.5.0-canary.7

2 years ago

0.5.0-canary.8

2 years ago

0.5.0-canary.9

2 years ago

0.6.0-beta.4

2 years ago

0.6.0-beta.3

2 years ago

0.7.0

2 years ago

0.4.0-beta.1

2 years ago

0.5.0-beta.1

2 years ago

0.5.0-beta.2

2 years ago

0.8.0

2 years ago

0.7.0-beta.5

2 years ago

0.9.0

2 years ago

0.5.0

2 years ago

0.8.0-canary.33

2 years ago

0.9.0-canary.34

2 years ago

0.8.0-canary.32

2 years ago

0.9.0-beta.7

2 years ago

0.7.0-canary.28

2 years ago

0.7.0-canary.26

2 years ago

0.8.0-beta.6

2 years ago

0.7.0-canary.21

2 years ago

0.8.0-canary.29

2 years ago

0.7.0-canary.24

2 years ago

0.7.0-canary.25

2 years ago

0.7.0-canary.22

2 years ago

0.7.0-canary.23

2 years ago

0.3.0-canary.1

2 years ago

0.6.0

2 years ago

0.3.0

2 years ago

0.3.0-beta.1

2 years ago

0.3.0-canary.3

2 years ago

0.3.0-canary.6

2 years ago

0.3.0-canary.5

2 years ago

0.3.0-canary.4

2 years ago

0.2.0

2 years ago

0.2.0-beta.1

2 years ago

0.2.0-canary.1

2 years ago

0.1.0

2 years ago

0.1.0-beta.3

2 years ago

0.1.0-beta.2

2 years ago

0.1.0-beta.1

2 years ago

0.1.0-canary.11

2 years ago

0.1.0-canary.1

2 years ago

0.0.7-canary.83

2 years ago

0.0.7-canary.82

2 years ago

0.0.7-beta.9

2 years ago

0.0.7-canary.62

2 years ago

0.0.6

2 years ago

0.0.6-beta.8

2 years ago

0.0.6-beta.7

2 years ago

0.0.6-canary.13

2 years ago

0.0.5-beta.6

2 years ago

0.0.5-canary.12

2 years ago

0.0.5-beta.5

2 years ago

0.0.5-canary.11

2 years ago

0.0.5-beta.4

2 years ago

0.0.5-canary.9

2 years ago

0.0.5-canary.8

2 years ago

0.0.5

2 years ago

0.0.5-beta.3

2 years ago

0.0.5-canary.7

2 years ago

0.0.5-beta.2

2 years ago

0.0.5-canary.6

2 years ago

0.0.5-beta.1

2 years ago

0.0.5-canary.5

2 years ago

0.0.5-canary.4

2 years ago

0.0.4-canary.16

2 years ago

0.0.4-canary.13

2 years ago

0.0.4-canary.11

2 years ago

0.0.4-canary.8

2 years ago

0.0.4-canary.1

2 years ago

0.0.3-canary.102

2 years ago

0.0.2-canary.101

2 years ago

0.0.2-canary.99

2 years ago

0.0.1-canary.98

2 years ago

0.0.1-canary.90

2 years ago

0.0.1-canary.89

2 years ago

0.0.1-canary.88

2 years ago

0.0.1-canary.87

2 years ago

0.0.1-canary.86

2 years ago

0.0.1-canary.85

2 years ago

0.0.1-canary.76

2 years ago

0.0.1-canary.75

2 years ago

0.0.1-canary.69

2 years ago

0.0.1-canary.68

2 years ago

0.0.1-canary.67

2 years ago

0.0.1-canary.66

2 years ago

0.0.1-canary.1

2 years ago