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

Commit 3836db40 by Sascha Depold

tests for enums

1 parent c2166c5a
...@@ -36,8 +36,13 @@ function pgEscape(val) { ...@@ -36,8 +36,13 @@ function pgEscape(val) {
return "'"+val+"'"; return "'"+val+"'";
} }
function pgEscapeAndQuote(val) {
return addQuotes(removeQuotes(pgEscape(val), "'"))
}
function pgEnum(tableName, attr, dataType) { function pgEnum(tableName, attr, dataType) {
return "CREATE TYPE " + Utils.escape("enum_" + tableName + "_" + attr) + " AS " + dataType.match(/^ENUM\(.+\)/)[0] + "; " var enumName = pgEscapeAndQuote("enum_" + tableName + "_" + attr)
return "DROP TYPE IF EXISTS " + enumName + "; CREATE TYPE " + enumName + " AS " + dataType.match(/^ENUM\(.+\)/)[0] + "; "
} }
function padInt(i) { function padInt(i) {
...@@ -70,7 +75,7 @@ function pgDataTypeMapping(tableName, attr, dataType) { ...@@ -70,7 +75,7 @@ function pgDataTypeMapping(tableName, attr, dataType) {
} }
if (dataType.match(/^ENUM\(/)) { if (dataType.match(/^ENUM\(/)) {
dataType = dataType.replace(/^ENUM\(.+\)/, Utils.escape("enum_" + tableName + "_" + attr)) dataType = dataType.replace(/^ENUM\(.+\)/, pgEscapeAndQuote("enum_" + tableName + "_" + attr))
} }
return dataType return dataType
...@@ -95,7 +100,7 @@ module.exports = (function() { ...@@ -95,7 +100,7 @@ module.exports = (function() {
attrStr.push(addQuotes(attr) + " " + dataType) attrStr.push(addQuotes(attr) + " " + dataType)
if (attributes[attr].match(/^ENUM\(/)) { if (attributes[attr].match(/^ENUM\(/)) {
query = pgEnum(tableName, attr, attributes[attr])) + query; query = pgEnum(tableName, attr, attributes[attr]) + query;
} }
} }
......
...@@ -795,8 +795,6 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() { ...@@ -795,8 +795,6 @@ describe(Helpers.getTestDialectTeaser("DAOFactory"), function() {
}.bind(this)) //- sequelize.sync }.bind(this)) //- sequelize.sync
}) })
}) })
}) //- describe: find }) //- describe: find
describe('findAll', function findAll() { describe('findAll', function findAll() {
......
...@@ -114,4 +114,32 @@ describe(Helpers.getTestDialectTeaser("Sequelize"), function() { ...@@ -114,4 +114,32 @@ describe(Helpers.getTestDialectTeaser("Sequelize"), function() {
}.bind(this)) }.bind(this))
}) })
}) })
describe('define', function() {
describe('enum', function() {
before(function(done) {
this.Review = this.sequelize.define('review', {
status: { type: Helpers.Sequelize.ENUM, values: ['scheduled', 'active', 'finished']}
})
this.Review.sync({ force: true }).success(done)
})
it('correctly stores values', function(done) {
this.Review.create({ status: 'active' }).success(function(review) {
expect(review.status).toEqual('active')
done()
})
})
it('correctly loads values', function(done) {
this.Review.create({ status: 'active' }).success(function() {
this.Review.findAll().success(function(reviews) {
expect(reviews[0].status).toEqual('active')
done()
})
}.bind(this))
})
})
})
}) })
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!