mirror of
https://github.com/knex/knex.git
synced 2026-01-01 09:37:41 +00:00
53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
const expect = require('chai').expect;
|
|
const MySQL_Client = require('../../../lib/dialects/mysql');
|
|
const knex = require('../../../knex');
|
|
describe('SchemaBuilder Extensions', () => {
|
|
const client = new MySQL_Client({ client: 'mysql' });
|
|
|
|
const equal = require('assert').equal;
|
|
const functionToExtend = () => true;
|
|
knex.SchemaBuilder.extend('tryCreateTable', functionToExtend);
|
|
knex.TableBuilder.extend('testCol', functionToExtend);
|
|
knex.ColumnBuilder.extend('testCol', functionToExtend);
|
|
knex.ViewBuilder.extend('testCol', functionToExtend);
|
|
|
|
it('schemabuilder has method', () => {
|
|
equal(client.schemaBuilder().tryCreateTable, functionToExtend);
|
|
expect(client.schemaBuilder().tryCreateTable()).to.be.true;
|
|
});
|
|
|
|
it('tablebuilder has method', () => {
|
|
client
|
|
.schemaBuilder()
|
|
.createTable('users', function (table) {
|
|
equal(table.testCol, functionToExtend);
|
|
})
|
|
.toSQL();
|
|
});
|
|
|
|
it('columnbuilder has method', () => {
|
|
client
|
|
.schemaBuilder()
|
|
.createTable('users', function (table) {
|
|
equal(table.string('t').testCol, functionToExtend);
|
|
})
|
|
.toSQL();
|
|
});
|
|
|
|
it('viewbuilder has method', () => {
|
|
client
|
|
.schemaBuilder()
|
|
.createView('users', function (view) {
|
|
equal(view.testCol, functionToExtend);
|
|
view.as(
|
|
knex('users')
|
|
.join('user_roles', 'users.user_id', 'user_roles.user_id')
|
|
.select('users.*', 'user_roles.role_code')
|
|
);
|
|
})
|
|
.toSQL();
|
|
});
|
|
});
|