Skip to content

Commit 0439862

Browse files
authored
fix: creating a Parse.File with base64 string fails for some encodings (#1517)
1 parent fc79281 commit 0439862

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/ParseFile.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export type FileSource =
4343
};
4444

4545
const base64Regex = new RegExp(
46-
'([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))',
46+
'([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/][AQgw]==)|([0-9a-zA-Z+/]{2}[AEIMQUYcgkosw048]=)|([0-9a-zA-Z+/]{4}))',
4747
'i'
4848
);
4949

src/__tests__/ParseFile-test.js

+13-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,19 @@ describe('ParseFile', () => {
6060
process.env.PARSE_BUILD = 'node';
6161
});
6262

63-
it('can create files with base64 encoding', () => {
63+
it('can create files with base64 encoding (no padding)', () => {
64+
const file = new ParseFile('parse.txt', { base64: 'YWJj' });
65+
expect(file._source.base64).toBe('YWJj');
66+
expect(file._source.type).toBe('');
67+
});
68+
69+
it('can create files with base64 encoding (1 padding)', () => {
70+
const file = new ParseFile('parse.txt', { base64: 'YWI=' });
71+
expect(file._source.base64).toBe('YWI=');
72+
expect(file._source.type).toBe('');
73+
});
74+
75+
it('can create files with base64 encoding (2 padding)', () => {
6476
const file = new ParseFile('parse.txt', { base64: 'ParseA==' });
6577
expect(file._source.base64).toBe('ParseA==');
6678
expect(file._source.type).toBe('');

0 commit comments

Comments
 (0)