fix: return enum type

Signed-off-by: Muhammad Aaqil <aaqilcs102@gmail.com>
This commit is contained in:
Muhammad Aaqil 2023-10-17 13:36:14 +05:00
parent 9045ad868c
commit 23a1b0c9cc
3 changed files with 35 additions and 1 deletions

View File

@ -340,7 +340,6 @@ function mixinDiscovery(MySQL, mysql) {
case 'MEDIUMTEXT':
case 'LONGTEXT':
case 'TEXT':
case 'ENUM':
case 'SET':
return 'String';
case 'TINYBLOB':
@ -380,6 +379,8 @@ function mixinDiscovery(MySQL, mysql) {
case 'BOOL':
case 'BOOLEAN':
return 'Boolean';
case 'ENUM':
return columnType;
default:
return 'String';
}

View File

@ -257,6 +257,22 @@ describe('Discover LDL schema from a table', function() {
});
});
describe('Discover and handle enum', function() {
let schema;
before(function(done) {
db.discoverSchema('PATIENT', {owner: 'STRONGLOOP'}, function(err, schema_) {
schema = schema_;
done(err);
});
});
it('should validate enum type for PATIENT', function() {
assert.ok(/STRONGLOOP/i.test(schema.options.mysql.schema));
assert.strictEqual(schema.options.mysql.table, 'PATIENT');
assert.strictEqual(schema.name, 'Patient');
assert.strictEqual(schema.properties.type.type, "enum('INPATIENT','OUTPATIENT')");
});
});
describe('Discover and build models', function() {
let models;
before(function(done) {

View File

@ -49,6 +49,23 @@ LOCK TABLES `CUSTOMER` WRITE;
/*!40000 ALTER TABLE `CUSTOMER` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `INVENTORY`
--
DROP TABLE IF EXISTS `PATIENT`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `PATIENT` (
`ID` varchar(20) NOT NULL,
`NAME` varchar(20) NOT NULL,
`TYPE` ENUM('INPATIENT', 'OUTPATIENT') DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `INVENTORY`
--