不要怂,就是干,撸起袖子干!

Commit 6c9b993c by zhangshichun Committed by Sushant

fix(mariadb): unique constraint error message parsing (#10362)

1 parent 178b495a
...@@ -261,7 +261,7 @@ class Query extends AbstractQuery { ...@@ -261,7 +261,7 @@ class Query extends AbstractQuery {
switch (err.errno) { switch (err.errno) {
case ER_DUP_ENTRY: { case ER_DUP_ENTRY: {
const match = err.message.match( const match = err.message.match(
/Duplicate entry '([\s\S]*)' for key '?((.|\s)*?)'?[\s.*]?$/); /Duplicate entry '([\s\S]*)' for key '?((.|\s)*?)'?\s.*$/);
let fields = {}; let fields = {};
let message = 'Validation error'; let message = 'Validation error';
......
...@@ -42,7 +42,7 @@ if (dialect === 'mariadb') { ...@@ -42,7 +42,7 @@ if (dialect === 'mariadb') {
}); });
it('newlines contained in err message are parsed correctly', () => { it('newlines contained in err message are parsed correctly', () => {
const fakeErr = new Error("Duplicate entry 'test\r' for key 'num'"); const fakeErr = new Error('(conn=43, no: 1062, SQLState: 23000) Duplicate entry \'unique name one\r\' for key \'models_uniqueName2_unique\'\nsql: INSERT INTO `models` (`id`,`uniqueName1`,`uniqueName2`,`createdAt`,`updatedAt`) VALUES (DEFAULT,?,?,?,?); - parameters:[\'this is ok\',\'unique name one\',\'2019-01-18 09:05:28.496\',\'2019-01-18 09:05:28.496\']');
fakeErr.errno = 1062; fakeErr.errno = 1062;
...@@ -50,7 +50,7 @@ if (dialect === 'mariadb') { ...@@ -50,7 +50,7 @@ if (dialect === 'mariadb') {
expect(parsedErr).to.be.instanceOf(Sequelize.UniqueConstraintError); expect(parsedErr).to.be.instanceOf(Sequelize.UniqueConstraintError);
expect(parsedErr.parent).to.equal(fakeErr); expect(parsedErr.parent).to.equal(fakeErr);
expect(parsedErr.fields.num).to.equal('test\r'); expect(parsedErr.fields.models_uniqueName2_unique).to.equal('unique name one\r');
}); });
}); });
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!