Moving spyOn to the beforeEach just makes it fail sooner (and makes
both specs fail):
describe("details asst w/ no recur", function () {
var item;
var asst;
beforeEach(function(){
spyOn(jasmine.webos.StubSceneController, "popupSubmenu");
item = new Item({summaryText: "details setup", kind: Kind.STANDARD,
dueDate: Date.UTC(2010, 4, 28)});
asst = jasmine.webos.createStubSceneAssistant("details", item,
false);
asst.controller.stageController.assistant = {
appMenuAttr: Object.clone(Tracker.appMenuAttr),
appMenuModel: {visible: true, items:
Tracker.appMenuItemsBegin.concat(Tracker.appMenuItemsEnd)}
};
});
it("should process create arguments", function () {
expect(asst.item.summaryText).toEqual(item.summaryText);
expect(asst.itemIsNew).toBeTruthy();
expect(asst.allowProjectChange).toBe(false);
});
it("should set up models", function () {
Mojo.Log.info("asst.controller.stageController:",
Mojo.Log.propertiesAsString(asst.controller.stageController));
asst.setup();
expect(asst.controller.get("recurDiv").innerHTML).toEqual("No
Repeat");
//
expect(jasmine.webos.StubSceneController.popupSubmenu).toHaveBeenCalled();
});
});
combining the beforeEach and specs doesn't help:
describe("spy test", function () {
var item;
var asst;
it("should set up spy without failing", function(){
spyOn(jasmine.webos.StubSceneController, "listen");
item = new Item({summaryText: "details setup", kind: Kind.STANDARD,
dueDate: Date.UTC(2010, 4, 28)});
asst = jasmine.webos.createStubSceneAssistant("details", item,
false);
asst.controller.stageController.assistant = {
appMenuAttr: Object.clone(Tracker.appMenuAttr),
appMenuModel: {visible: true, items:
Tracker.appMenuItemsBegin.concat(Tracker.appMenuItemsEnd)}
};
expect(asst.item.summaryText).toEqual(item.summaryText);
expect(asst.itemIsNew).toBeTruthy();
expect(asst.allowProjectChange).toBe(false);
asst.setup();
expect(asst.controller.get("recurDiv").innerHTML).toEqual("No
Repeat");
//
expect(jasmine.webos.StubSceneController.popupSubmenu).toHaveBeenCalled();
});
});
On Aug 27, 7:59 am, Davis Frank <
dwfr...@pivotallabs.com> wrote:
> The "method does not exist" error, if the property is actually there, is
> most often due to spying later than when the method is added.
>
> Have you tried spying on popupSubmenu in your beforeEach?
>
> --dwf
>