I am running a combination of Node.js + Mocha + Selenium Webdriverjs for the first time. I setup everything according to their documentation here https://code.google.com/p/selen
@op, its best you use a chained statement. I use the until and isElementPresent command, and they work for production ready (CI/CD) train processes. Tweaking your code thus should work
var isDisplayed = function(){
driver.isElementPresent(by.id('button id')).then(function(isDisplayed){
expect(isDisplayed).to.be.true
});
};