diff --git a/spec/AdapterLoader.spec.js b/spec/AdapterLoader.spec.js index 8c2e1aef..badbd20d 100644 --- a/spec/AdapterLoader.spec.js +++ b/spec/AdapterLoader.spec.js @@ -3,6 +3,7 @@ var loadAdapter = require("../src/Adapters/AdapterLoader").loadAdapter; var FilesAdapter = require("parse-server-fs-adapter").default; var S3Adapter = require("parse-server-s3-adapter").default; var ParsePushAdapter = require("parse-server-push-adapter").default; +const Config = require('../src/Config'); describe("AdapterLoader", ()=>{ @@ -118,6 +119,30 @@ describe("AdapterLoader", ()=>{ done(); }); + it("should load custom push adapter from string (#3544)", (done) => { + var adapterPath = require('path').resolve("./spec/MockPushAdapter"); + var options = { + ios: { + bundleId: 'bundle.id' + } + } + const pushAdapterOptions = { + adapter: adapterPath, + options + }; + expect(() => { + reconfigureServer({ + push: pushAdapterOptions, + }).then(() => { + const config = new Config(Parse.applicationId); + const pushAdapter = config.pushWorker.adapter; + expect(pushAdapter.getValidPushTypes()).toEqual(['ios']); + expect(pushAdapter.options).toEqual(pushAdapterOptions); + done(); + }); + }).not.toThrow(); + }); + it("should load S3Adapter from direct passing", (done) => { var s3Adapter = new S3Adapter("key", "secret", "bucket") expect(() => { diff --git a/spec/MockPushAdapter.js b/spec/MockPushAdapter.js new file mode 100644 index 00000000..3350e9df --- /dev/null +++ b/spec/MockPushAdapter.js @@ -0,0 +1,9 @@ +module.exports = function(options) { + return { + options: options, + send: function() {}, + getValidPushTypes: function() { + return Object.keys(options.options); + } + }; +};