blow-data
Version:
Data access layer for Blow.
56 lines (49 loc) • 1.51 kB
text/typescript
/// <reference path="../typings/tsd.d.ts" />
'use strict'
import * as chai from 'chai';
import {ModelPropertyMetadata} from '../src/ModelPropertyMetadata';
import * as helpers from './helpers';
const expect = chai.expect;
describe('ModelPropertyMetadata', () => {
helpers.checkClassExport(ModelPropertyMetadata, {name: 'Test', type: String});
helpers.checkAttributes(ModelPropertyMetadata, {
default: {
args: {
name: 'name',
type: String
},
expected: {
name: 'name',
id: false,
default: undefined,
columnName: 'name',
index: false
}
},
custom: {
args: {
name: 'name',
type: Number,
id: true,
columnName: 'lastname',
index: true
},
expected: {
name: 'name',
id: true,
columnName: 'lastname',
index: true
}
}
});
it('default value should be returned as function if defined', () => {
let instance = new ModelPropertyMetadata({name: 'name', type: String});
expect(instance.default).to.be.equal(undefined);
instance = new ModelPropertyMetadata({name: 'name', type: String, default: true});
expect(instance.default).to.be.an('function');
expect(instance.default()).to.be.equal(true);
instance = new ModelPropertyMetadata({name: 'name', type: String, default: () => 1});
expect(instance.default).to.be.an('function');
expect(instance.default()).to.be.equal(1);
});
});