fineui是帆软报表和BI产品线所使用的前端框架。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

322 lines
9.2 KiB

/**
* Created by guy on 2018/01/23.
*/
describe("contextTest", function () {
before(function () {
});
/**
* test_author_guy
*/
it("context测试", function () {
var ParentStore = BI.inherit(Fix.Model, {
state: function () {
return {
context: "默认context"
};
},
childContext: ["context"]
});
BI.model("demo.model.parent_store", ParentStore);
var ChildStore = BI.inherit(Fix.Model, {
context: ["context"],
computed: {
currContext: function () {
return this.model.context;
}
},
actions: {
changeContext: function () {
this.model.context = "改变后的context";
}
}
});
BI.model("demo.model.child_store", ChildStore);
var Label = BI.inherit(BI.Widget, {
_store: function () {
return BI.Models.getModel("demo.model.child_store");
},
render: function () {
return {
type: "bi.label",
text: this.model.currContext
};
}
});
BI.shortcut("demo.label", Label);
var Demo = BI.inherit(BI.Widget, {
_store: function () {
return BI.Models.getModel("demo.model.parent_store");
},
render: function () {
var self = this;
return {
type: "demo.label",
ref: function (_ref) {
self.child = _ref;
}
};
}
});
BI.shortcut("demo.demo", Demo);
var demo = BI.Test.createWidget({
type: "demo.demo"
});
expect(demo.child.model.currContext).to.equal("默认context");
demo.child.store.changeContext();
expect(demo.model.context).to.equal("改变后的context");
demo.destroy();
});
/**
* test_author_guy
*/
it("异步context测试-loader的populate测试", function (done) {
var ParentStore = BI.inherit(Fix.Model, {
state: function () {
return {
context: "默认context"
};
},
childContext: ["context"]
});
BI.model("demo.model.parent_store", ParentStore);
var ChildStore = BI.inherit(Fix.Model, {
context: ["context"],
computed: {
currContext: function () {
return this.model.context;
}
},
actions: {
changeContext: function () {
this.model.context = "改变后的context";
}
}
});
BI.model("demo.model.child_store", ChildStore);
var Label = BI.inherit(BI.Widget, {
_store: function () {
return BI.Models.getModel("demo.model.child_store");
},
render: function () {
return {
type: "bi.label",
text: this.model.currContext
};
}
});
BI.shortcut("demo.label", Label);
var Demo = BI.inherit(BI.Widget, {
_store: function () {
return BI.Models.getModel("demo.model.parent_store");
},
render: function () {
var items = BI.map([1, 2, 3], function (i, v) {
return {
text: v,
value: v,
title: v
};
});
var self = this;
this.labels = {};
return {
type: "bi.loader",
ref: function (_ref) {
self.child = _ref;
},
itemsCreator: function (options, populate) {
setTimeout(function () {
populate(BI.map(items.slice((options.times - 1) * 10, options.times * 10), function (i, v) {
return BI.extend(v, {
type: "demo.label",
ref: function (_ref) {
self.labels[i] = _ref;
},
height: 25
});
}));
}, 0);
},
hasNext: function (options) {
return options.times * 10 < items.length;
}
};
}
});
BI.shortcut("demo.demo", Demo);
var demo = BI.Test.createWidget({
type: "demo.demo"
});
demo.child.populate();
setTimeout(function () {
expect(demo.labels[0].model.currContext).to.equal("默认context");
demo.destroy();
done();
}, 0);
});
/**
* test_author_guy
*/
it("异步context测试-beforeInit测试", function (done) {
var ParentStore = BI.inherit(Fix.Model, {
state: function () {
return {
context: "默认context"
};
},
childContext: ["context"]
});
BI.model("demo.model.parent_store", ParentStore);
var ChildStore = BI.inherit(Fix.Model, {
context: ["context"],
computed: {
currContext: function () {
return this.model.context;
}
},
actions: {
changeContext: function () {
this.model.context = "改变后的context";
}
}
});
BI.model("demo.model.child_store", ChildStore);
var Label = BI.inherit(BI.Widget, {
_store: function () {
return BI.Models.getModel("demo.model.child_store");
},
render: function () {
return {
type: "bi.label",
text: this.model.currContext
};
}
});
BI.shortcut("demo.label", Label);
var Demo = BI.inherit(BI.Widget, {
_store: function () {
return BI.Models.getModel("demo.model.parent_store");
},
beforeInit: function (callback) {
setTimeout(callback, 0);
},
render: function () {
var self = this;
return {
type: "demo.label",
ref: function (_ref) {
self.child = _ref;
}
};
}
});
BI.shortcut("demo.demo", Demo);
var demo = BI.Test.createWidget({
type: "demo.demo"
});
setTimeout(function () {
expect(demo.child.model.currContext).to.equal("默认context");
demo.destroy();
done();
}, 0);
});
/**
* test_author_guy
*/
it("inject测试", function () {
var ParentStore = BI.inherit(Fix.Model, {
state: function () {
return {
context: "默认context"
};
},
childContext: ["context"]
});
BI.model("demo.model.parent_store", ParentStore);
var ChildStore = BI.inherit(Fix.Model, {
inject: ["context"],
computed: {
currContext: function () {
return this.model.context;
}
},
actions: {
changeContext: function () {
this.model.context = "改变后的context";
}
}
});
BI.model("demo.model.child_store", ChildStore);
var Label = BI.inherit(BI.Widget, {
_store: function () {
return BI.Models.getModel("demo.model.child_store");
},
render: function () {
return {
type: "bi.label",
text: this.model.currContext
};
}
});
BI.shortcut("demo.label", Label);
var Demo = BI.inherit(BI.Widget, {
_store: function () {
return BI.Models.getModel("demo.model.parent_store");
},
render: function () {
var self = this;
return {
type: "demo.label",
ref: function (_ref) {
self.child = _ref;
}
};
}
});
BI.shortcut("demo.demo", Demo);
var demo = BI.Test.createWidget({
type: "demo.demo"
});
expect(demo.child.model.currContext).to.equal("默认context");
demo.child.store.changeContext();
expect(demo.model.context).to.equal("默认context");
demo.destroy();
});
});