import * as assert from "power-assert"; import * as Mock from "../unit/mock"; import * as app from "../../../index"; import * as Config from "../../config.local"; import * as common from '../../common/index'; import * as util from 'util' // import { process } from "ts-jest/dist/preprocessor"; // import { __exportStar } from "tslib"; describe("Date类型", async () => { const config = { secretId: Config.secretId, secretKey: Config.secretKey, env: Mock.env, mpAppId: Mock.appId, proxy: Config.proxy, sessionToken: undefined }; app.init(config); const db = app.database(); const collName = "coll-1"; const collection = db.collection(collName); // const nameList = ["f", "b", "e", "d", "a", "c"]; it("Document - createCollection()", async () => { await common.safeCreateCollection(db, collName) }) const date = new Date() const offset = 60 * 1000 const initialData = { name: 'test', date, serverDate1: db.serverDate(), serverDate2: db.serverDate({ offset }), foo: { bar: db.serverDate({ offset }) } } it("Document - CRUD", async () => { // Create const res = await collection.add(initialData) console.log(res) assert(res.id) assert(res.requestId) // Read const { id } = res let result = await collection.where({ _id: id }).get() console.log(result.data[0]) assert.strictEqual(result.data[0].date.getTime(), date.getTime()) assert(util.isDate(result.data[0].foo.bar)) assert.strictEqual(assert.strictEqual(result.data[0].serverDate1.getDate(), date.getDate())) assert.strictEqual(result.data[0].serverDate1.getTime() + offset, result.data[0].serverDate2.getTime()) result = await collection.where({ date: db.command.eq(date) }).get() console.log(result) assert.strictEqual(result.data[0].date.getTime(), date.getTime()) result = await collection.where({ date: db.command.lte(date) }).get() console.log(result) assert(result.data.length > 0) result = await collection.where({ date: db.command.lte(date).and(db.command.gte(date)) }).get() console.log(result) assert(result.data.length > 0) // Update const newDate = new Date() const newServerDate = db.serverDate({ offset: 1000 * 60 * 60 }) // offset一小时 result = await collection.where({ date: db.command.lte(date).and(db.command.gte(date)) }).update({ date: newDate, serverDate2: newServerDate }) console.log(result) assert.strictEqual(result.updated, 1) result = await collection.where({ _id: id }).get() console.log(result) assert.strictEqual(result.data[0].date.getTime(), newDate.getTime()) assert(result.data[0].serverDate2.getTime() - result.data[0].serverDate1.getTime() > 1000 * 60 * 60) // Delete const deleteRes = await collection.doc(id).remove() assert.strictEqual(deleteRes.deleted, 1) }) })