fix(prettier): Properly handle lint-stage files (#6970)
Now handles top level files and recursive files in folders. Set max line length to be 100
This commit is contained in:
@@ -17,10 +17,7 @@ const hasAllPODobject = () => {
|
||||
obj.set('aObject', { k1: 'value', k2: true, k3: 5 });
|
||||
obj.set('aArray', ['contents', true, 5]);
|
||||
obj.set('aGeoPoint', new Parse.GeoPoint({ latitude: 0, longitude: 0 }));
|
||||
obj.set(
|
||||
'aFile',
|
||||
new Parse.File('f.txt', { base64: 'V29ya2luZyBhdCBQYXJzZSBpcyBncmVhdCE=' })
|
||||
);
|
||||
obj.set('aFile', new Parse.File('f.txt', { base64: 'V29ya2luZyBhdCBQYXJzZSBpcyBncmVhdCE=' }));
|
||||
const objACL = new Parse.ACL();
|
||||
objACL.setPublicWriteAccess(false);
|
||||
obj.setACL(objACL);
|
||||
@@ -173,9 +170,7 @@ describe('schemas', () => {
|
||||
headers: restKeyHeaders,
|
||||
}).then(fail, response => {
|
||||
expect(response.status).toEqual(403);
|
||||
expect(response.data.error).toEqual(
|
||||
'unauthorized: master key is required'
|
||||
);
|
||||
expect(response.data.error).toEqual('unauthorized: master key is required');
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -187,9 +182,7 @@ describe('schemas', () => {
|
||||
headers: restKeyHeaders,
|
||||
}).then(fail, response => {
|
||||
expect(response.status).toEqual(403);
|
||||
expect(response.data.error).toEqual(
|
||||
'unauthorized: master key is required'
|
||||
);
|
||||
expect(response.data.error).toEqual('unauthorized: master key is required');
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -211,11 +204,7 @@ describe('schemas', () => {
|
||||
delete withoutIndexes.indexes;
|
||||
return withoutIndexes;
|
||||
})
|
||||
).toEqual(
|
||||
expected.results.sort((s1, s2) =>
|
||||
s1.className.localeCompare(s2.className)
|
||||
)
|
||||
);
|
||||
).toEqual(expected.results.sort((s1, s2) => s1.className.localeCompare(s2.className)));
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -238,12 +227,7 @@ describe('schemas', () => {
|
||||
headers: masterKeyHeaders,
|
||||
}).then(response => {
|
||||
const expected = {
|
||||
results: [
|
||||
userSchema,
|
||||
roleSchema,
|
||||
plainOldDataSchema,
|
||||
pointersAndRelationsSchema,
|
||||
],
|
||||
results: [userSchema, roleSchema, plainOldDataSchema, pointersAndRelationsSchema],
|
||||
};
|
||||
expect(
|
||||
response.data.results
|
||||
@@ -253,11 +237,7 @@ describe('schemas', () => {
|
||||
delete withoutIndexes.indexes;
|
||||
return withoutIndexes;
|
||||
})
|
||||
).toEqual(
|
||||
expected.results.sort((s1, s2) =>
|
||||
s1.className.localeCompare(s2.className)
|
||||
)
|
||||
);
|
||||
).toEqual(expected.results.sort((s1, s2) => s1.className.localeCompare(s2.className)));
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -659,11 +639,7 @@ describe('schemas', () => {
|
||||
config.database
|
||||
.loadSchema()
|
||||
.then(schemaController =>
|
||||
schemaController.addClassIfNotExists(
|
||||
'_Installation',
|
||||
{},
|
||||
defaultClassLevelPermissions
|
||||
)
|
||||
schemaController.addClassIfNotExists('_Installation', {}, defaultClassLevelPermissions)
|
||||
)
|
||||
.then(() => {
|
||||
request({
|
||||
@@ -803,9 +779,7 @@ describe('schemas', () => {
|
||||
}).then(fail, response => {
|
||||
expect(response.status).toEqual(400);
|
||||
expect(response.data.code).toEqual(255);
|
||||
expect(response.data.error).toEqual(
|
||||
'Field aString exists, cannot update.'
|
||||
);
|
||||
expect(response.data.error).toEqual('Field aString exists, cannot update.');
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -827,9 +801,7 @@ describe('schemas', () => {
|
||||
}).then(fail, response => {
|
||||
expect(response.status).toEqual(400);
|
||||
expect(response.data.code).toEqual(255);
|
||||
expect(response.data.error).toEqual(
|
||||
'Field nonExistentKey does not exist, cannot delete.'
|
||||
);
|
||||
expect(response.data.error).toEqual('Field nonExistentKey does not exist, cannot delete.');
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -1109,13 +1081,9 @@ describe('schemas', () => {
|
||||
obj.set('newRequiredField', 'some value');
|
||||
await obj.save();
|
||||
expect(obj.get('newRequiredField')).toEqual('some value');
|
||||
expect(obj.get('newRequiredFieldWithDefaultValue')).toEqual(
|
||||
'some value'
|
||||
);
|
||||
expect(obj.get('newRequiredFieldWithDefaultValue')).toEqual('some value');
|
||||
expect(obj.get('newNotRequiredField')).toEqual(undefined);
|
||||
expect(obj.get('newNotRequiredFieldWithDefaultValue')).toEqual(
|
||||
'some value'
|
||||
);
|
||||
expect(obj.get('newNotRequiredFieldWithDefaultValue')).toEqual('some value');
|
||||
expect(obj.get('newRegularField')).toEqual(undefined);
|
||||
obj.set('newRequiredField', null);
|
||||
try {
|
||||
@@ -1136,13 +1104,9 @@ describe('schemas', () => {
|
||||
obj.set('newRequiredField', 'some value2');
|
||||
await obj.save();
|
||||
expect(obj.get('newRequiredField')).toEqual('some value2');
|
||||
expect(obj.get('newRequiredFieldWithDefaultValue')).toEqual(
|
||||
'some value'
|
||||
);
|
||||
expect(obj.get('newRequiredFieldWithDefaultValue')).toEqual('some value');
|
||||
expect(obj.get('newNotRequiredField')).toEqual(undefined);
|
||||
expect(obj.get('newNotRequiredFieldWithDefaultValue')).toEqual(
|
||||
'some value'
|
||||
);
|
||||
expect(obj.get('newNotRequiredFieldWithDefaultValue')).toEqual('some value');
|
||||
expect(obj.get('newRegularField')).toEqual(undefined);
|
||||
obj.unset('newRequiredFieldWithDefaultValue');
|
||||
try {
|
||||
@@ -1150,9 +1114,7 @@ describe('schemas', () => {
|
||||
fail('Should fail');
|
||||
} catch (e) {
|
||||
expect(e.code).toEqual(142);
|
||||
expect(e.message).toEqual(
|
||||
'newRequiredFieldWithDefaultValue is required'
|
||||
);
|
||||
expect(e.message).toEqual('newRequiredFieldWithDefaultValue is required');
|
||||
}
|
||||
obj.set('newRequiredFieldWithDefaultValue', '');
|
||||
try {
|
||||
@@ -1160,9 +1122,7 @@ describe('schemas', () => {
|
||||
fail('Should fail');
|
||||
} catch (e) {
|
||||
expect(e.code).toEqual(142);
|
||||
expect(e.message).toEqual(
|
||||
'newRequiredFieldWithDefaultValue is required'
|
||||
);
|
||||
expect(e.message).toEqual('newRequiredFieldWithDefaultValue is required');
|
||||
}
|
||||
obj.set('newRequiredFieldWithDefaultValue', 'some value2');
|
||||
obj.set('newNotRequiredField', '');
|
||||
@@ -1170,9 +1130,7 @@ describe('schemas', () => {
|
||||
obj.unset('newRegularField');
|
||||
await obj.save();
|
||||
expect(obj.get('newRequiredField')).toEqual('some value2');
|
||||
expect(obj.get('newRequiredFieldWithDefaultValue')).toEqual(
|
||||
'some value2'
|
||||
);
|
||||
expect(obj.get('newRequiredFieldWithDefaultValue')).toEqual('some value2');
|
||||
expect(obj.get('newNotRequiredField')).toEqual('');
|
||||
expect(obj.get('newNotRequiredFieldWithDefaultValue')).toEqual(null);
|
||||
expect(obj.get('newRegularField')).toEqual(undefined);
|
||||
@@ -1184,13 +1142,9 @@ describe('schemas', () => {
|
||||
obj.set('newRegularField', 'some value3');
|
||||
await obj.save();
|
||||
expect(obj.get('newRequiredField')).toEqual('some value3');
|
||||
expect(obj.get('newRequiredFieldWithDefaultValue')).toEqual(
|
||||
'some value3'
|
||||
);
|
||||
expect(obj.get('newRequiredFieldWithDefaultValue')).toEqual('some value3');
|
||||
expect(obj.get('newNotRequiredField')).toEqual('some value3');
|
||||
expect(obj.get('newNotRequiredFieldWithDefaultValue')).toEqual(
|
||||
'some value3'
|
||||
);
|
||||
expect(obj.get('newNotRequiredFieldWithDefaultValue')).toEqual('some value3');
|
||||
expect(obj.get('newRegularField')).toEqual('some value3');
|
||||
done();
|
||||
});
|
||||
@@ -1599,12 +1553,8 @@ describe('schemas', () => {
|
||||
}).then(fail, response => {
|
||||
//Expect _SCHEMA entry to be gone.
|
||||
expect(response.status).toEqual(400);
|
||||
expect(response.data.code).toEqual(
|
||||
Parse.Error.INVALID_CLASS_NAME
|
||||
);
|
||||
expect(response.data.error).toEqual(
|
||||
'Class MyOtherClass does not exist.'
|
||||
);
|
||||
expect(response.data.code).toEqual(Parse.Error.INVALID_CLASS_NAME);
|
||||
expect(response.data.error).toEqual('Class MyOtherClass does not exist.');
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -1668,9 +1618,7 @@ describe('schemas', () => {
|
||||
expect(typeof response.data.objectId).toEqual('string');
|
||||
request({
|
||||
method: 'DELETE',
|
||||
url:
|
||||
'http://localhost:8378/1/classes/NewClassForDelete/' +
|
||||
response.data.objectId,
|
||||
url: 'http://localhost:8378/1/classes/NewClassForDelete/' + response.data.objectId,
|
||||
headers: restKeyHeaders,
|
||||
json: true,
|
||||
}).then(() => {
|
||||
@@ -1795,9 +1743,7 @@ describe('schemas', () => {
|
||||
done();
|
||||
},
|
||||
err => {
|
||||
expect(err.message).toEqual(
|
||||
'Permission denied for action addField on class AClass.'
|
||||
);
|
||||
expect(err.message).toEqual('Permission denied for action addField on class AClass.');
|
||||
done();
|
||||
}
|
||||
);
|
||||
@@ -1960,9 +1906,7 @@ describe('schemas', () => {
|
||||
},
|
||||
},
|
||||
}).then(fail, response => {
|
||||
expect(response.data.error).toEqual(
|
||||
"' *' is not a valid key for class level permissions"
|
||||
);
|
||||
expect(response.data.error).toEqual("' *' is not a valid key for class level permissions");
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -1981,9 +1925,7 @@ describe('schemas', () => {
|
||||
},
|
||||
},
|
||||
}).then(fail, response => {
|
||||
expect(response.data.error).toEqual(
|
||||
"'* ' is not a valid key for class level permissions"
|
||||
);
|
||||
expect(response.data.error).toEqual("'* ' is not a valid key for class level permissions");
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -2085,9 +2027,7 @@ describe('schemas', () => {
|
||||
fail('Use should hot be able to find!');
|
||||
},
|
||||
err => {
|
||||
expect(err.message).toEqual(
|
||||
'Permission denied for action find on class AClass.'
|
||||
);
|
||||
expect(err.message).toEqual('Permission denied for action find on class AClass.');
|
||||
return Promise.resolve();
|
||||
}
|
||||
);
|
||||
@@ -2147,9 +2087,7 @@ describe('schemas', () => {
|
||||
fail('User should not be able to find!');
|
||||
},
|
||||
err => {
|
||||
expect(err.message).toEqual(
|
||||
'Permission denied for action find on class AClass.'
|
||||
);
|
||||
expect(err.message).toEqual('Permission denied for action find on class AClass.');
|
||||
return Promise.resolve();
|
||||
}
|
||||
);
|
||||
@@ -2234,9 +2172,7 @@ describe('schemas', () => {
|
||||
fail('User should not be able to find!');
|
||||
},
|
||||
err => {
|
||||
expect(err.message).toEqual(
|
||||
'Permission denied for action find on class AClass.'
|
||||
);
|
||||
expect(err.message).toEqual('Permission denied for action find on class AClass.');
|
||||
return Promise.resolve();
|
||||
}
|
||||
);
|
||||
@@ -2312,9 +2248,7 @@ describe('schemas', () => {
|
||||
fail('User should not be able to find!');
|
||||
},
|
||||
err => {
|
||||
expect(err.message).toEqual(
|
||||
'Permission denied for action find on class AClass.'
|
||||
);
|
||||
expect(err.message).toEqual('Permission denied for action find on class AClass.');
|
||||
return Promise.resolve();
|
||||
}
|
||||
);
|
||||
@@ -2345,9 +2279,7 @@ describe('schemas', () => {
|
||||
fail('User should not be able to find!');
|
||||
},
|
||||
err => {
|
||||
expect(err.message).toEqual(
|
||||
'Permission denied for action find on class AClass.'
|
||||
);
|
||||
expect(err.message).toEqual('Permission denied for action find on class AClass.');
|
||||
return Promise.resolve();
|
||||
}
|
||||
);
|
||||
@@ -2431,9 +2363,7 @@ describe('schemas', () => {
|
||||
return Promise.resolve();
|
||||
},
|
||||
err => {
|
||||
expect(err.message).toEqual(
|
||||
'Permission denied for action create on class AClass.'
|
||||
);
|
||||
expect(err.message).toEqual('Permission denied for action create on class AClass.');
|
||||
return Promise.resolve();
|
||||
}
|
||||
)
|
||||
@@ -2450,9 +2380,7 @@ describe('schemas', () => {
|
||||
return Promise.resolve();
|
||||
},
|
||||
err => {
|
||||
expect(err.message).toEqual(
|
||||
'Permission denied for action find on class AClass.'
|
||||
);
|
||||
expect(err.message).toEqual('Permission denied for action find on class AClass.');
|
||||
return Promise.resolve();
|
||||
}
|
||||
)
|
||||
@@ -2764,10 +2692,7 @@ describe('schemas', () => {
|
||||
});
|
||||
|
||||
await expectAsync(schemaCreation()).toBeRejectedWith(
|
||||
new Parse.Error(
|
||||
Parse.Error.INVALID_KEY_NAME,
|
||||
`invalid field name: ${fieldName}`
|
||||
)
|
||||
new Parse.Error(Parse.Error.INVALID_KEY_NAME, `invalid field name: ${fieldName}`)
|
||||
);
|
||||
done();
|
||||
});
|
||||
@@ -2912,9 +2837,7 @@ describe('schemas', () => {
|
||||
},
|
||||
}).then(fail, response => {
|
||||
expect(response.data.code).toBe(Parse.Error.INVALID_QUERY);
|
||||
expect(response.data.error).toBe(
|
||||
'Field aString does not exist, cannot add index.'
|
||||
);
|
||||
expect(response.data.error).toBe('Field aString does not exist, cannot add index.');
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -2968,9 +2891,7 @@ describe('schemas', () => {
|
||||
},
|
||||
}).then(fail, response => {
|
||||
expect(response.data.code).toBe(Parse.Error.INVALID_QUERY);
|
||||
expect(response.data.error).toBe(
|
||||
'Field bString does not exist, cannot add index.'
|
||||
);
|
||||
expect(response.data.error).toBe('Field bString does not exist, cannot add index.');
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -3110,76 +3031,73 @@ describe('schemas', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it_only_db('mongo')(
|
||||
'lets you add index with with pointer like structure',
|
||||
done => {
|
||||
it_only_db('mongo')('lets you add index with with pointer like structure', done => {
|
||||
request({
|
||||
url: 'http://localhost:8378/1/schemas/NewClass',
|
||||
method: 'POST',
|
||||
headers: masterKeyHeaders,
|
||||
json: true,
|
||||
body: {},
|
||||
}).then(() => {
|
||||
request({
|
||||
url: 'http://localhost:8378/1/schemas/NewClass',
|
||||
method: 'POST',
|
||||
method: 'PUT',
|
||||
headers: masterKeyHeaders,
|
||||
json: true,
|
||||
body: {},
|
||||
}).then(() => {
|
||||
request({
|
||||
url: 'http://localhost:8378/1/schemas/NewClass',
|
||||
method: 'PUT',
|
||||
headers: masterKeyHeaders,
|
||||
json: true,
|
||||
body: {
|
||||
body: {
|
||||
fields: {
|
||||
aPointer: { type: 'Pointer', targetClass: 'NewClass' },
|
||||
},
|
||||
indexes: {
|
||||
pointer: { _p_aPointer: 1 },
|
||||
},
|
||||
},
|
||||
}).then(response => {
|
||||
expect(
|
||||
dd(response.data, {
|
||||
className: 'NewClass',
|
||||
fields: {
|
||||
ACL: { type: 'ACL' },
|
||||
createdAt: { type: 'Date' },
|
||||
updatedAt: { type: 'Date' },
|
||||
objectId: { type: 'String' },
|
||||
aPointer: { type: 'Pointer', targetClass: 'NewClass' },
|
||||
},
|
||||
classLevelPermissions: defaultClassLevelPermissions,
|
||||
indexes: {
|
||||
_id_: { _id: 1 },
|
||||
pointer: { _p_aPointer: 1 },
|
||||
},
|
||||
},
|
||||
})
|
||||
).toEqual(undefined);
|
||||
request({
|
||||
url: 'http://localhost:8378/1/schemas/NewClass',
|
||||
headers: masterKeyHeaders,
|
||||
json: true,
|
||||
}).then(response => {
|
||||
expect(
|
||||
dd(response.data, {
|
||||
className: 'NewClass',
|
||||
fields: {
|
||||
ACL: { type: 'ACL' },
|
||||
createdAt: { type: 'Date' },
|
||||
updatedAt: { type: 'Date' },
|
||||
objectId: { type: 'String' },
|
||||
aPointer: { type: 'Pointer', targetClass: 'NewClass' },
|
||||
},
|
||||
classLevelPermissions: defaultClassLevelPermissions,
|
||||
indexes: {
|
||||
_id_: { _id: 1 },
|
||||
pointer: { _p_aPointer: 1 },
|
||||
},
|
||||
})
|
||||
).toEqual(undefined);
|
||||
request({
|
||||
url: 'http://localhost:8378/1/schemas/NewClass',
|
||||
headers: masterKeyHeaders,
|
||||
json: true,
|
||||
}).then(response => {
|
||||
expect(response.data).toEqual({
|
||||
className: 'NewClass',
|
||||
fields: {
|
||||
ACL: { type: 'ACL' },
|
||||
createdAt: { type: 'Date' },
|
||||
updatedAt: { type: 'Date' },
|
||||
objectId: { type: 'String' },
|
||||
aPointer: { type: 'Pointer', targetClass: 'NewClass' },
|
||||
},
|
||||
classLevelPermissions: defaultClassLevelPermissions,
|
||||
indexes: {
|
||||
_id_: { _id: 1 },
|
||||
pointer: { _p_aPointer: 1 },
|
||||
},
|
||||
});
|
||||
config.database.adapter.getIndexes('NewClass').then(indexes => {
|
||||
expect(indexes.length).toEqual(2);
|
||||
done();
|
||||
});
|
||||
expect(response.data).toEqual({
|
||||
className: 'NewClass',
|
||||
fields: {
|
||||
ACL: { type: 'ACL' },
|
||||
createdAt: { type: 'Date' },
|
||||
updatedAt: { type: 'Date' },
|
||||
objectId: { type: 'String' },
|
||||
aPointer: { type: 'Pointer', targetClass: 'NewClass' },
|
||||
},
|
||||
classLevelPermissions: defaultClassLevelPermissions,
|
||||
indexes: {
|
||||
_id_: { _id: 1 },
|
||||
pointer: { _p_aPointer: 1 },
|
||||
},
|
||||
});
|
||||
config.database.adapter.getIndexes('NewClass').then(indexes => {
|
||||
expect(indexes.length).toEqual(2);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
it('lets you add multiple indexes', done => {
|
||||
request({
|
||||
@@ -3532,9 +3450,7 @@ describe('schemas', () => {
|
||||
},
|
||||
}).then(fail, response => {
|
||||
expect(response.data.code).toBe(Parse.Error.INVALID_QUERY);
|
||||
expect(response.data.error).toBe(
|
||||
'Index unknownIndex does not exist, cannot delete.'
|
||||
);
|
||||
expect(response.data.error).toBe('Index unknownIndex does not exist, cannot delete.');
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -3574,9 +3490,7 @@ describe('schemas', () => {
|
||||
},
|
||||
}).then(fail, response => {
|
||||
expect(response.data.code).toBe(Parse.Error.INVALID_QUERY);
|
||||
expect(response.data.error).toBe(
|
||||
'Index name1 exists, cannot update.'
|
||||
);
|
||||
expect(response.data.error).toBe('Index name1 exists, cannot update.');
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -3633,52 +3547,43 @@ describe('schemas', () => {
|
||||
}).then(response => {
|
||||
expect(response.data.indexes._id_).toBeDefined();
|
||||
expect(response.data.indexes._id_._id).toEqual(1);
|
||||
expect(
|
||||
response.data.indexes.subject_text_comment_text
|
||||
).toBeDefined();
|
||||
expect(
|
||||
response.data.indexes.subject_text_comment_text.subject
|
||||
).toEqual('text');
|
||||
expect(
|
||||
response.data.indexes.subject_text_comment_text.comment
|
||||
).toEqual('text');
|
||||
expect(response.data.indexes.subject_text_comment_text).toBeDefined();
|
||||
expect(response.data.indexes.subject_text_comment_text.subject).toEqual('text');
|
||||
expect(response.data.indexes.subject_text_comment_text.comment).toEqual('text');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it_exclude_dbs(['postgres'])(
|
||||
'cannot update to duplicate value on unique index',
|
||||
done => {
|
||||
const index = {
|
||||
code: 1,
|
||||
};
|
||||
const obj1 = new Parse.Object('UniqueIndexClass');
|
||||
obj1.set('code', 1);
|
||||
const obj2 = new Parse.Object('UniqueIndexClass');
|
||||
obj2.set('code', 2);
|
||||
const adapter = config.database.adapter;
|
||||
adapter
|
||||
._adaptiveCollection('UniqueIndexClass')
|
||||
.then(collection => {
|
||||
return collection._ensureSparseUniqueIndexInBackground(index);
|
||||
})
|
||||
.then(() => {
|
||||
return obj1.save();
|
||||
})
|
||||
.then(() => {
|
||||
return obj2.save();
|
||||
})
|
||||
.then(() => {
|
||||
obj1.set('code', 2);
|
||||
return obj1.save();
|
||||
})
|
||||
.then(done.fail)
|
||||
.catch(error => {
|
||||
expect(error.code).toEqual(Parse.Error.DUPLICATE_VALUE);
|
||||
done();
|
||||
});
|
||||
}
|
||||
);
|
||||
it_exclude_dbs(['postgres'])('cannot update to duplicate value on unique index', done => {
|
||||
const index = {
|
||||
code: 1,
|
||||
};
|
||||
const obj1 = new Parse.Object('UniqueIndexClass');
|
||||
obj1.set('code', 1);
|
||||
const obj2 = new Parse.Object('UniqueIndexClass');
|
||||
obj2.set('code', 2);
|
||||
const adapter = config.database.adapter;
|
||||
adapter
|
||||
._adaptiveCollection('UniqueIndexClass')
|
||||
.then(collection => {
|
||||
return collection._ensureSparseUniqueIndexInBackground(index);
|
||||
})
|
||||
.then(() => {
|
||||
return obj1.save();
|
||||
})
|
||||
.then(() => {
|
||||
return obj2.save();
|
||||
})
|
||||
.then(() => {
|
||||
obj1.set('code', 2);
|
||||
return obj1.save();
|
||||
})
|
||||
.then(done.fail)
|
||||
.catch(error => {
|
||||
expect(error.code).toEqual(Parse.Error.DUPLICATE_VALUE);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user