@geodaoyu/accessor
Version:
Implement esri/core/Accessor by myself.
57 lines (55 loc) • 1.72 kB
JavaScript
import Accessor from "../dist/index.js";
import assert from "assert";
describe("#set()", function () {
it("should return 4 when the property is set to 4", function () {
const view = new Accessor();
view.set("zoom", 4);
assert.strictEqual(view.get("zoom"), 4);
});
it("should return 4 when the property is 4", function () {
const view = new Accessor();
view.zoom = 4;
assert.strictEqual(view.zoom, 4);
});
/**
* 设置属性的属性
*/
it("deep path set property", function () {
const map = new Accessor();
const basemap = new Accessor();
map.set("basemap", basemap);
map.set("basemap.title", "World Topographic Map");
assert.strictEqual(map.get("basemap.title"), "World Topographic Map");
});
/**
* 设置属性的属性,当属性不存在的时候,不设置
*/
it("deep path set property which does not exist", function () {
const map = new Accessor();
map.set("basemap.title", "World Topographic Map");
assert.strictEqual(map.get("basemap.title"), undefined);
});
/**
* 可以通过对象的形式批量设置属性
*/
it("An object with key-value pairs can be passed into", function () {
const view = new Accessor();
view.set({
center: [-4.4861, 48.3904],
scale: 5000,
});
assert.strictEqual(view.get("scale"), 5000);
});
/**
* 柯里化
*/
it("An object with key-value pairs can be passed into", function () {
const view = new Accessor();
const updateView = view.set.bind(view);
updateView({
center: [-4.4861, 48.3904],
scale: 5000,
});
assert.strictEqual(view.get("scale"), 5000);
});
});