72 lines
2.1 KiB
JavaScript
72 lines
2.1 KiB
JavaScript
/*
|
|
Unit testing
|
|
*/
|
|
const assert = require("assert");
|
|
const fs=require('fs-extra');
|
|
const path= require('path');
|
|
const Odmdb = require("../Odmdb.js");
|
|
const {generemdp} = require('../../nationchains/socialworld/contracts/toolsbox.js');
|
|
|
|
const ut = { name: "Odmdb" };
|
|
/*
|
|
We test only search and indexation here
|
|
Create Update Read and Delete are unit testing with specificities of each Object.
|
|
|
|
To do that we create in tmp a dummy data folder for a dummy schema object
|
|
*/
|
|
const schema = {
|
|
$schema: "http://json-schema.org/schema#",
|
|
title: "Dummy schema to test Checkjson.js",
|
|
description: "Checkjson is use on server as well as into a browser",
|
|
$comment: "We change schema type on the fly to simplify the test",
|
|
type: "object",
|
|
properties: {
|
|
uuid: {
|
|
type:"string",
|
|
format:"uuid",
|
|
default:"=uuid.v4()"
|
|
},
|
|
dtcreate:{
|
|
type:"string",
|
|
format:"datetime",
|
|
default:"=date.now()"
|
|
},
|
|
tag:{
|
|
type:"string",
|
|
enum:["t1","t2","t3"],
|
|
default:"t1"
|
|
},
|
|
info:{
|
|
type:"string",
|
|
minLength: 10,
|
|
default:"=generemdp(255,'ABCDEFGHIJKLM 12340')"
|
|
}
|
|
},
|
|
required:["uuid"],
|
|
apxprimarykey:"uuid",
|
|
apxuniquekey:["info"],
|
|
apxsearchindex:{
|
|
"uuid":{"list":[],"taginfo":['tag','info'],"all":""},
|
|
"info":{"uuid":['uuid']}
|
|
}
|
|
};
|
|
|
|
const obj={tag:"t1",info:"Lorem ipsum A"}
|
|
|
|
ut.createanobject=(schema,obj)=>{
|
|
|
|
const res={status:200,err:[]}
|
|
return res
|
|
}
|
|
|
|
ut.run = (options) => {
|
|
const objectPath=path.resolve(__dirname,'../../tmp/testobjects');
|
|
const schemaPath=path.resolve(__dirname,'../../tmp/testschema');
|
|
if (!fs.existsSync(objectPath)) fs.ensureDirSync(objectPath);
|
|
if (!fs.existsSync(schemaPath)) fs.ensureDirSync(schemaPath);
|
|
const createenvobj=Odmdb.setObject(schemaPath,objectPath,"objtest",schema,{},"en");
|
|
assert.deepEqual(createenvobj,{status:200},JSON.stringify(createenvobj));
|
|
const checkschema= Odmdb.schema(schemaPath,"objtest",true)
|
|
assert.deepEqual(checkschema.status,200,JSON.stringify(checkschema))
|
|
};
|
|
module.exports = ut; |