PageRenderTime 69ms CodeModel.GetById 32ms RepoModel.GetById 0ms app.codeStats 0ms

/spec/MongoStorageAdapter.spec.js

https://gitlab.com/mlnkv/parse-server
JavaScript | 40 lines | 35 code | 4 blank | 1 comment | 0 complexity | 65297b2577448a5f33a4541121bde116 MD5 | raw file
  1. 'use strict';
  2. const MongoStorageAdapter = require('../src/Adapters/Storage/Mongo/MongoStorageAdapter');
  3. const MongoClient = require('mongodb').MongoClient;
  4. describe('MongoStorageAdapter', () => {
  5. it('auto-escapes symbols in auth information', () => {
  6. spyOn(MongoClient, 'connect').and.returnValue(Promise.resolve(null));
  7. new MongoStorageAdapter({
  8. uri: 'mongodb://user!with@+ symbols:password!with@+ symbols@localhost:1234/parse'
  9. }).connect();
  10. expect(MongoClient.connect).toHaveBeenCalledWith(
  11. 'mongodb://user!with%40%2B%20symbols:password!with%40%2B%20symbols@localhost:1234/parse',
  12. jasmine.any(Object)
  13. );
  14. });
  15. it("doesn't double escape already URI-encoded information", () => {
  16. spyOn(MongoClient, 'connect').and.returnValue(Promise.resolve(null));
  17. new MongoStorageAdapter({
  18. uri: 'mongodb://user!with%40%2B%20symbols:password!with%40%2B%20symbols@localhost:1234/parse'
  19. }).connect();
  20. expect(MongoClient.connect).toHaveBeenCalledWith(
  21. 'mongodb://user!with%40%2B%20symbols:password!with%40%2B%20symbols@localhost:1234/parse',
  22. jasmine.any(Object)
  23. );
  24. });
  25. // https://github.com/ParsePlatform/parse-server/pull/148#issuecomment-180407057
  26. it('preserves replica sets', () => {
  27. spyOn(MongoClient, 'connect').and.returnValue(Promise.resolve(null));
  28. new MongoStorageAdapter({
  29. uri: 'mongodb://test:testpass@ds056315-a0.mongolab.com:59325,ds059315-a1.mongolab.com:59315/testDBname?replicaSet=rs-ds059415'
  30. }).connect();
  31. expect(MongoClient.connect).toHaveBeenCalledWith(
  32. 'mongodb://test:testpass@ds056315-a0.mongolab.com:59325,ds059315-a1.mongolab.com:59315/testDBname?replicaSet=rs-ds059415',
  33. jasmine.any(Object)
  34. );
  35. });
  36. });