UNPKG

1.8 kBJavaScriptView Raw
1// Copyright IBM Corp. 2014,2019. All Rights Reserved.
2// Node module: loopback-connector
3// This file is licensed under the MIT License.
4// License text available at https://opensource.org/licenses/MIT
5
6'use strict';
7const expect = require('chai').expect;
8const testConnector = require('./connectors/test-sql-connector');
9
10const juggler = require('loopback-datasource-juggler');
11const ds = new juggler.DataSource({
12 connector: testConnector,
13 debug: true,
14});
15
16describe('sql connector', function() {
17 beforeEach(function() {
18 ds.connector._tables = {};
19 ds.connector._models = {};
20 ds.createModel('m1', {});
21 ds.createModel('m2', {});
22 });
23
24 it('automigrate all models', function(done) {
25 ds.automigrate(function(err) {
26 expect(ds.connector._tables).have.property('m1');
27 expect(ds.connector._tables).have.property('m2');
28 done(err);
29 });
30 });
31
32 it('automigrate one model', function(done) {
33 ds.automigrate('m1', function(err) {
34 expect(ds.connector._tables).have.property('m1');
35 done(err);
36 });
37 });
38
39 it('automigrate one or more models in an array', function(done) {
40 ds.automigrate(['m1'], function(err) {
41 expect(ds.connector._tables).have.property('m1');
42 done(err);
43 });
44 });
45
46 it('automigrate reports errors for models not attached', function(done) {
47 ds.automigrate(['m1', 'm3'], function(err) {
48 expect(err).to.be.an.instanceOf(Error);
49 expect(ds.connector._tables).to.not.have.property('m1');
50 expect(ds.connector._tables).to.not.have.property('m3');
51 done();
52 });
53 });
54
55 it('automigrate tables in series', function(done) {
56 ds.automigrate(['m1', 'm2'], function(err) {
57 expect(Object.keys(ds.connector._tables)).to.deep.equal(['m1', 'm2']);
58 done();
59 });
60 });
61});