mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-11 23:04:52 +09:00
65 lines
2.2 KiB
JavaScript
65 lines
2.2 KiB
JavaScript
var assert = require("assert");
|
|
|
|
var chunkStore = require("./chunkStore.js");
|
|
|
|
describe("remoteMap/chunkStore.js", () => {
|
|
// define some values for our test
|
|
const inserterX = 14.5; // rounds to 15
|
|
const inserterY = -17.5; // rounds to -17, +64 would be 47
|
|
const inserterName = "inserter";
|
|
|
|
let store // make our store elevated
|
|
it("is a constructor", ()=>{
|
|
assert.equal(typeof chunkStore, "function");
|
|
// create a new store and elevate it
|
|
store = new chunkStore("910239"/* instanceID, use defaults for the rest */, undefined, "./database/unitTests/chunkStore/");
|
|
assert.equal(store.name, "910239");
|
|
});
|
|
it("allows you to store the locations of entities", done => {
|
|
store.setEntity(inserterX, inserterY, {name:inserterName, otherData:"can be arbitrary"}).then(() => {
|
|
done();
|
|
// nothing to do here really
|
|
});
|
|
});
|
|
it("returns entities at positions you query for", done => {
|
|
setTimeout(()=>{
|
|
store.getEntity(inserterX, inserterY).then(entities => {
|
|
entity = entities[0]
|
|
// console.log(entity)
|
|
assert.equal(entity.x, 14);
|
|
assert.equal(entity.y, -18);
|
|
assert.equal(entity.entity.name, "inserter");
|
|
assert.equal(entity.entity.otherData, "can be arbitrary");
|
|
done();
|
|
});
|
|
},300);
|
|
});
|
|
it("deletes entities when not provided with an object as 3rd arg", done => {
|
|
store.setEntity(inserterX, inserterY).then(entity => {
|
|
assert(entity === undefined);
|
|
setTimeout(()=>{
|
|
store.getEntity(inserterX, inserterY).then(entities => {
|
|
// console.log(entities)
|
|
assert.equal(entities.length, 0, "Why are we getting results, it should be empty?");
|
|
done();
|
|
});
|
|
},300);
|
|
});
|
|
});
|
|
describe("validates input by throwing when it is invalid", ()=>{
|
|
it("throws if called without a string as the first parameter", ()=>{
|
|
assert.throws(()=>{
|
|
let throwingChunkStore = new chunkStore(undefined, undefined, "asdasda");
|
|
});
|
|
assert.throws(()=>{
|
|
let throwingChunkStore = new chunkStore({}, undefined, "asdasdas");
|
|
});
|
|
});
|
|
it("converts numbers to strings automatically if they are provided as the first parameter", ()=>{
|
|
assert.ok(()=>{
|
|
let nonThrowingChunkStore = new chunkStore(42, undefined, "./database/unitTests/chunkStore/");
|
|
});
|
|
});
|
|
});
|
|
});
|