--- /dev/null
+/*
+ * Copyright 2012 Cloud9 IDE, Inc.
+ *
+ * This product includes software developed by
+ * Cloud9 IDE, Inc (http://c9.io).
+ *
+ * Author: Mike de Boer <info@mikedeboer.nl>
+ */
+
+"use strict";
+
+var Assert = require("assert");
+var Client = require("./../../index");
+
+describe("[events]", function() {
+ var client;
+ var token = "c286e38330e15246a640c2cf32a45ea45d93b2ba";
+
+ beforeEach(function() {
+ client = new Client({
+ version: "3.0.0"
+ });
+ client.authenticate({
+ type: "oauth",
+ token: token
+ });
+ });
+
+ it("should successfully execute GET /events (get)", function(next) {
+ client.events.get(
+ {
+ page: 1,
+ per_page: 30
+ },
+ function(err, res) {
+ // other assertions go here
+ Assert.equal(err, null);
+ Assert.ok(res.length > 1);
+ Assert.equal(typeof res[0].type, "string");
+ Assert.equal(typeof res[0].created_at, "string");
+ Assert.equal(typeof res[0]["public"], "boolean");
+ Assert.equal(typeof res[0].id, "string");
+ Assert.ok("actor" in res[0]);
+ Assert.ok("repo" in res[0]);
+ next();
+ }
+ );
+ });
+
+ it("should successfully execute GET /repos/:user/:repo/events (getFromRepo)", function(next) {
+ client.events.getFromRepo(
+ {
+ user: "mikedeboertest",
+ repo: "node_chat"
+ },
+ function(err, res) {
+ Assert.equal(err, null);
+ Assert.equal(res.length, 5);
+ // this is the lastly listed event
+ var last = res.pop();
+ Assert.equal(last.type, "ForkEvent");
+ Assert.equal(last.created_at, "2012-10-05T15:03:11Z");
+ Assert.equal(last.id, "1607304921");
+ Assert.equal(last["public"], true);
+ Assert.equal(last.actor.login, "mikedeboer");
+ Assert.equal(last.repo.name, "mikedeboertest/node_chat");
+ next();
+ }
+ );
+ });
+
+ it("should successfully execute GET /repos/:user/:repo/issues/events (getFromRepoIssues)", function(next) {
+ client.events.getFromRepoIssues(
+ {
+ user: "mikedeboertest",
+ repo: "node_chat"
+ },
+ function(err, res) {
+ Assert.equal(err, null);
+ Assert.equal(res.length, 4);
+ // this is the lastly listed event
+ var last = res.pop();
+ Assert.equal(last.event, "referenced");
+ Assert.equal(last.created_at, "2012-10-05T15:05:31Z");
+ Assert.equal(last.id, "26276344");
+ Assert.equal(last.actor.login, "mikedeboertest");
+ Assert.equal(last.issue.title, "Macaroni");
+ Assert.equal(last.issue.number, 1);
+ Assert.equal(last.issue.state, "closed");
+ next();
+ }
+ );
+ });
+
+ it("should successfully execute GET /networks/:user/:repo/events (getFromRepoNetwork)", function(next) {
+ client.events.getFromRepoNetwork(
+ {
+ user: "mikedeboertest",
+ repo: "node_chat"
+ },
+ function(err, res) {
+ Assert.equal(err, null);
+ Assert.ok(res.length > 1);
+ var last = res.pop();
+ Assert.equal(typeof last.id, "string");
+ Assert.equal(typeof last.created_at, "string");
+ Assert.equal(typeof last.actor, "object");
+ next();
+ }
+ );
+ });
+
+ it("should successfully execute GET /orgs/:org/events (getFromOrg)", function(next) {
+ client.events.getFromOrg(
+ {
+ org: "ajaxorg"
+ },
+ function(err, res) {
+ Assert.equal(err, null);
+ Assert.ok(res.length > 1);
+ var last = res.pop();
+ Assert.equal(typeof last.id, "string");
+ Assert.equal(typeof last.created_at, "string");
+ Assert.equal(typeof last.actor, "object");
+ next();
+ }
+ );
+ });
+
+ it("should successfully execute GET /users/:user/received_events (getReceived)", function(next) {
+ client.events.getReceived(
+ {
+ user: "mikedeboertest"
+ },
+ function(err, res) {
+ Assert.equal(err, null);
+ Assert.ok(res.length > 0);
+ var last = res.pop();
+ Assert.equal(typeof last.id, "string");
+ Assert.equal(typeof last.created_at, "string");
+ Assert.equal(typeof last.actor, "object");
+ next();
+ }
+ );
+ });
+
+ it("should successfully execute GET /users/:user/received_events/public (getReceivedPublic)", function(next) {
+ client.events.getReceivedPublic(
+ {
+ user: "mikedeboertest"
+ },
+ function(err, res) {
+ Assert.equal(err, null);
+ Assert.ok(res.length > 0);
+ var last = res.pop();
+ Assert.equal(typeof last.id, "string");
+ Assert.equal(typeof last.created_at, "string");
+ Assert.equal(typeof last.actor, "object");
+ next();
+ }
+ );
+ });
+
+ it("should successfully execute GET /users/:user/events (getFromUser)", function(next) {
+ client.events.getFromUser(
+ {
+ user: "mikedeboertest"
+ },
+ function(err, res) {
+ Assert.equal(err, null);
+ Assert.ok(res.length > 1);
+ var last = res.pop();
+ Assert.equal(typeof last.id, "string");
+ Assert.equal(typeof last.created_at, "string");
+ Assert.equal(typeof last.actor, "object");
+ next();
+ }
+ );
+ });
+
+ it("should successfully execute GET /users/:user/events/public (getFromUserPublic)", function(next) {
+ client.events.getFromUserPublic(
+ {
+ user: "mikedeboertest"
+ },
+ function(err, res) {
+ Assert.equal(err, null);
+ Assert.ok(res.length > 1);
+ var last = res.pop();
+ Assert.equal(typeof last.id, "string");
+ Assert.equal(typeof last.created_at, "string");
+ Assert.equal(typeof last.actor, "object");
+ next();
+ }
+ );
+ });
+
+ it("should successfully execute GET /users/:user/events/orgs/:org (getFromUserOrg)", function(next) {
+ client.events.getFromUserOrg(
+ {
+ user: "mikedeboer",
+ org: "ajaxorg"
+ },
+ function(err, res) {
+ // we're not logged in as `mikedeboer` right now, so github API does not allow
+ // us to see the resource.
+ Assert.equal(err.code, 404);
+ next();
+ }
+ );
+ });
+});