Skip to content

Commit 54a2d43

Browse files
committed
fix for insert date in moment format with null value.
Added test for fixed bug.
1 parent 77b0068 commit 54a2d43

7 files changed

Lines changed: 61 additions & 7 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "database-builder",
3-
"version": "0.1.0-beta.13",
3+
"version": "0.1.0-beta.14",
44
"description": "Library to assist in creating and maintaining SQL commands.",
55
"main": "./src/index.js",
66
"types": "./src/index.d.ts",

src/datetime-utils.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@ import { DatabaseBuilderError } from "./core/errors";
44
export class DatetimeUtils {
55

66
public static datetimeToDatabase(date: moment.Moment): number {
7-
if (!date.unix) {
8-
throw new DatabaseBuilderError("Date format incorrect");
7+
if (date) {
8+
if (!date.unix) {
9+
throw new DatabaseBuilderError("Date format incorrect");
10+
}
11+
return date.unix();
912
}
10-
return date.unix();
13+
return void 0;
1114
}
1215

1316
public static dateToDatabase(date: any): number {
@@ -19,6 +22,9 @@ export class DatetimeUtils {
1922
}
2023

2124
public static databaseToDatetime(unix: number) {
22-
return moment.utc(unix * 1000);
25+
if (unix) {
26+
return moment.utc(unix * 1000);
27+
}
28+
return void 0;
2329
}
2430
}

src/test/create.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ describe("Create", () => {
8989
const create = new Create(ContasReceber, mapper.get(ContasReceber));
9090
const result = create.compile();
9191
expect(result.length > 0).to.equal(true);
92-
expect(result).to.equal(`CREATE TABLE IF NOT EXISTS ContasReceber( internalKey INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, codeImport INTEGER, valor INTEGER, cliente_codeImport INTEGER );`);
92+
expect(result).to.equal(`CREATE TABLE IF NOT EXISTS ContasReceber( internalKey INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, codeImport INTEGER, valor INTEGER, dataRecebimento INTEGER, dataVencimento INTEGER, cliente_codeImport INTEGER );`);
9393
});
9494

9595
it("Test create", () => {
@@ -104,7 +104,6 @@ describe("Create", () => {
104104
const result = create.compile();
105105
expect(result.length > 0).to.equal(true);
106106
expect(result).to.equal(`CREATE TABLE IF NOT EXISTS TestClazzRefCode( code TEXT NOT NULL PRIMARY KEY, description TEXT, reference_description TEXT );`);
107-
// expect(result).to.equal(`CREATE TABLE IF NOT EXISTS TestClazzRefCode( code TEXT NOT NULL PRIMARY KEY AUTOINCREMENT, description TEXT, reference_id INTEGER );`);
108107
});
109108

110109
it("TestClazz", () => {

src/test/insert.spec.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { ObjectToTest } from "./objeto-to-test";
1313
import { GuidClazz } from "./models/guid-clazz";
1414
import { TestClazzRefCode } from "./models/test-clazz-ref-code";
1515
import { Insert } from "../crud/insert/insert";
16+
import { ContasReceber } from "./models/contas-receber";
1617

1718
describe("Insert", () => {
1819
const mapper = new MappersTableNew();
@@ -109,4 +110,21 @@ describe("Insert", () => {
109110
expect(result.query).to.equal("INSERT INTO TestClazzRefCode (code, description, reference_description) VALUES (?, ?, ?)");
110111
});
111112

113+
it("TestClazzRefCode", () => {
114+
const result = new Insert(TestClazzRefCode, ObjectToTest.testClazzRefCode, mapper.get(TestClazzRefCode)).compile();
115+
expect(result.params.toString()).to.equal([
116+
ObjectToTest.testClazzRefCode.code, ObjectToTest.testClazzRefCode.description, ObjectToTest.testClazzRefCode.reference.description
117+
].toString());
118+
expect(result.query).to.equal("INSERT INTO TestClazzRefCode (code, description, reference_description) VALUES (?, ?, ?)");
119+
});
120+
121+
it("ContasAReceber", () => {
122+
const result = new Insert(ContasReceber, ObjectToTest.contasReceber, mapper.get(ContasReceber)).compile();
123+
expect(result.params.toString()).to.equal([
124+
ObjectToTest.contasReceber.codeImport, ObjectToTest.contasReceber.valor,
125+
void 0, ObjectToTest.contasReceber.dataVencimento.unix(),
126+
ObjectToTest.contasReceber.cliente.codeImport
127+
].toString());
128+
expect(result.query).to.equal("INSERT INTO ContasReceber (codeImport, valor, dataRecebimento, dataVencimento, cliente_codeImport) VALUES (?, ?, ?, ?, ?)");
129+
});
112130
});

src/test/models/contas-receber.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
import { Cliente } from "./cliente";
22
import { BaseModel } from "./base-model";
3+
import * as moment from "moment";
34

45
export class ContasReceber extends BaseModel<number> {
56

67
public valor: number = 0;
78
public cliente: Cliente = new Cliente();
9+
// Deixar esse valor nulo para teste
10+
public dataRecebimento: moment.Moment = moment();
11+
public dataVencimento: moment.Moment = moment();
812

913
constructor() {
1014
super(0);

src/test/objeto-to-test.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { Uf } from "./models/uf";
1212
import { Cidade } from "./models/cidade";
1313
import { Cliente } from "./models/cliente";
1414
import * as moment from "moment";
15+
import { ContasReceber } from "./models/contas-receber";
1516

1617
export class ObjectToTest {
1718

@@ -101,4 +102,12 @@ export class ObjectToTest {
101102
description: "jgagdada"
102103
} as TestClazzRefCode
103104
} as TestClazz;
105+
106+
public static contasReceber = {
107+
codeImport: 10,
108+
valor: 1023.45,
109+
cliente: ObjectToTest.cliente,
110+
dataRecebimento: void 0,
111+
dataVencimento: moment()
112+
} as ContasReceber;
104113
}

src/test/sqlite.spec.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { ContasReceber } from "./models/contas-receber";
12
import { Ddl } from "./../ddl/ddl";
23
import { SQLiteDatabase } from "./database/sqlite-database";
34
import { expect } from "chai";
@@ -7,6 +8,7 @@ import { MappersTableNew } from "./mappers-table-new";
78
import { Crud } from "../crud";
89
import { GuidClazz } from "./models/guid-clazz";
910
import { Uf } from "./models/uf";
11+
import * as moment from "moment";
1012

1113
describe("SQLite", async () => {
1214
const mapper = new MappersTableNew();
@@ -83,4 +85,20 @@ describe("SQLite", async () => {
8385
expect(queryResult[0].codeImport).to.equal(ObjectToTest.cidade.codeImport);
8486
});
8587

88+
it("ContasAReceber", async () => {
89+
90+
await ddl.create(ContasReceber).execute();
91+
92+
const insertResult1 = await crud.insert(ContasReceber, ObjectToTest.contasReceber).execute();
93+
expect(insertResult1.rowsAffected, "insert").to.equal(1);
94+
95+
const queryResult = await crud.query(ContasReceber)
96+
.where(where => where.equal(x => x.cliente.codeImport, ObjectToTest.contasReceber.cliente.codeImport))
97+
.toList();
98+
99+
expect(queryResult.length).to.equal(1);
100+
expect(queryResult[0].codeImport).to.equal(ObjectToTest.contasReceber.codeImport);
101+
expect(queryResult[0].dataRecebimento).to.equal(void 0);
102+
});
103+
86104
});

0 commit comments

Comments
 (0)