UNPKG

fh-fhc

Version:

A Command Line Interface for FeedHenry

94 lines (89 loc) 2.62 kB
var nock = require('nock'); var fs = require('fs'); var _ = require('underscore'); var filePath = 'test/fixtures/appforms/test_file.json'; var mockSubmissionExportHost = "https://some.exported.file.location.com"; var mockSubmissionExportPath = "/somefileid"; var mockSubmissionExportDownloadUrl = mockSubmissionExportHost + mockSubmissionExportPath; var baseUrl = 'https://apps.feedhenry.com'; var mockSubmission = { _id: "somesubmissionid", formId: "someformid", appEnvironment: "someenv", formFields: [{ fieldId: "sometextfieldid", fieldValues: ["sometextval"] }], formSubmittedAgainst: { _id: "someformid", name: "Some Form", pages: [{ _id: "somepageid", fields: [{ _id: "sometextfieldid", type: "text" }] }] } }; var envReplies = { list: function() { return { pages: 22, total: 4000, submissions: [mockSubmission] }; }, get: function() { return mockSubmission; }, getFile: function() { return fs.createReadStream(filePath); }, exportStatusInProgress: function() { return { status: 'inprogress', message: 'submission export in progress' }; }, exportStatusUnavailable: function() { return { status: 'asyncunavailable', message: 'Async CSV export is unavailable for this environment' }; }, exportStatusComplete: function() { return { status: 'complete', message: 'Submission CSV Export complete', downloadUrl: mockSubmissionExportDownloadUrl }; } }; module.exports = { getCSVExportAsyncMocks: function() { //APIs required to satisfy asynchronous submission CSV export return nock(baseUrl) .post('/api/v2/mbaas/someenv/appforms/submissions/export/async') .reply(200, envReplies.exportStatusInProgress) .get('/api/v2/mbaas/someenv/appforms/submissions/export/status') .reply(200, envReplies.exportStatusComplete); }, getCSVExportAsyncFileDownloadMocks: function() { //The download url for exported submissions return nock(mockSubmissionExportHost) .get(mockSubmissionExportPath) .reply(200, envReplies.getFile); }, getCSVExportAsyncUnavailable: function() { return nock(baseUrl) .post('/api/v2/mbaas/someenv/appforms/submissions/export/async') .reply(200, envReplies.exportStatusUnavailable); }, getCSVExportSyncMocks: function() { //APIs required to satisfy synchronous submission CSV export return nock(baseUrl) .post('/api/v2/mbaas/someenv/appforms/submissions/export') .reply(200, envReplies.getFile); } };