|
10 | 10 | jest.autoMockOff();
|
11 | 11 | jest.mock('http');
|
12 | 12 | jest.mock('https');
|
| 13 | +jest.mock('../ParseACL'); |
13 | 14 |
|
14 | 15 | const ParseError = require('../ParseError').default;
|
15 | 16 | const ParseFile = require('../ParseFile').default;
|
| 17 | +const ParseObject = require('../ParseObject').default; |
16 | 18 | const CoreManager = require('../CoreManager');
|
17 | 19 | const EventEmitter = require('../EventEmitter');
|
18 | 20 |
|
19 | 21 | const mockHttp = require('http');
|
20 | 22 | const mockHttps = require('https');
|
21 | 23 |
|
| 24 | +const mockLocalDatastore = { |
| 25 | + _updateLocalIdForObject: jest.fn(), |
| 26 | + _updateObjectIfPinned: jest.fn(), |
| 27 | +}; |
| 28 | +jest.setMock('../LocalDatastore', mockLocalDatastore); |
| 29 | + |
22 | 30 | function generateSaveMock(prefix) {
|
23 | 31 | return function(name, payload, options) {
|
24 | 32 | if (options && typeof options.progress === 'function') {
|
@@ -687,6 +695,30 @@ describe('FileController', () => {
|
687 | 695 | });
|
688 | 696 | });
|
689 | 697 |
|
| 698 | + it('saves files via object saveAll options', async () => { |
| 699 | + const ajax = jest.fn().mockResolvedValueOnce({ |
| 700 | + response: { |
| 701 | + name: 'parse.txt', |
| 702 | + url: 'http://files.parsetfss.com/a/parse.txt' |
| 703 | + } |
| 704 | + }); |
| 705 | + CoreManager.setRESTController({ ajax, request: () => { |
| 706 | + return [ { success: { objectId: 'child' } } ]; |
| 707 | + } }); |
| 708 | + CoreManager.setLocalDatastore(mockLocalDatastore); |
| 709 | + |
| 710 | + const file = new ParseFile('parse.txt', [61, 170, 236, 120]); |
| 711 | + file._source.format = 'file'; |
| 712 | + const object = ParseObject.fromJSON({ className: 'TestObject' }); |
| 713 | + object.set('file', file); |
| 714 | + await ParseObject.saveAll([object], { sessionToken: 'testToken' }); |
| 715 | + |
| 716 | + const request = ajax.mock.calls[0]; |
| 717 | + expect(request[1]).toBe('https://api.parse.com/1/files/parse.txt') |
| 718 | + expect(request[3]['X-Parse-Session-Token']).toBe('testToken'); |
| 719 | + expect(request[4].sessionToken).toBe('testToken'); |
| 720 | + }); |
| 721 | + |
690 | 722 | it('should throw error if file deleted without name', async (done) => {
|
691 | 723 | const file = new ParseFile('', [1, 2, 3]);
|
692 | 724 | try {
|
|
0 commit comments