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
I look here directly at the source file for docs. It's actually pretty good:
https://code.google.com/p/selenium/source/browse/javascript/webdriver/webdriver.js
In answer to your question, you don't really want to wait in WebDriverJS, you want to get used to the deferred objects and promises api. I've just written a blog post about it here that should help you:
http://xolv.io/blog/2013/04/end-to-end-testing-for-web-apps-meteor
I was looking through the source code as well. They have a compiled version of the API docs that is a bit easier to scan through here:
http://selenium.googlecode.com/git/docs/api/javascript/module_selenium-webdriver.html
Unfortunately, there is no summary with just the method names. You still have to scroll through the page.
In terms of how to wait:
webdriver = require 'selenium-webdriver'
driver = ... // init your driver
driver.wait(webdriver.until...)
@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
});
};