/* * Copyright 2012 Cloud9 IDE, Inc. * * This product includes software developed by * Cloud9 IDE, Inc (http://c9.io). * * Author: Mike de Boer */ "use strict"; var Assert = require("assert"); var Client = require("./../../index"); describe("[gists]", function() { var client; var token = "c286e38330e15246a640c2cf32a45ea45d93b2ba"; timeout(5000); beforeEach(function() { client = new Client({ version: "3.0.0" }); client.authenticate({ type: "oauth", token: token }); }); it("should successfully execute GET /gists (getAll)", function(next) { client.gists.getAll( {}, function(err, res) { Assert.equal(err, null); Assert.equal(res.length, 1); var gist = res.pop(); Assert.equal(gist.user.login, "mikedeboertest"); Assert.equal(gist.html_url, "https://gist.github.com/77dc15615eab09a79b61"); Assert.equal(gist.created_at, "2012-10-05T16:10:40Z"); Assert.equal(gist.public, false); Assert.equal(gist.id, "77dc15615eab09a79b61"); next(); } ); }); it("should successfully execute GET /users/:user/gists (getFromUser)", function(next) { client.gists.getFromUser( { user: "mikedeboertest" }, function(err, res) { Assert.equal(err, null); Assert.equal(res.length, 1); var gist = res.pop(); Assert.equal(gist.user.login, "mikedeboertest"); Assert.equal(gist.html_url, "https://gist.github.com/77dc15615eab09a79b61"); Assert.equal(gist.created_at, "2012-10-05T16:10:40Z"); Assert.equal(gist.public, false); Assert.equal(gist.id, "77dc15615eab09a79b61"); next(); } ); }); it("should successfully execute POST /gists (create)", function(next) { client.gists.create( { description: "Another bowl of pasta", public: "false", files: { "ravioli.js": { "content": "alert(\"want some ketchup with that?\");" } } }, function(err, res) { Assert.equal(err, null); var id = res.id; client.gists.get( { id: id }, function(err, res) { Assert.equal(err, null); Assert.equal(res.user.login, "mikedeboertest"); Assert.equal(res.html_url, "https://gist.github.com/" + id); Assert.equal(res.public, false); Assert.equal(res.id, id); Assert.equal(res.description, "Another bowl of pasta"); client.gists["delete"]( { id: id }, function(err, res) { Assert.equal(err, null); next(); } ); } ); } ); }); it("should successfully execute PATCH /gists/:id (edit)", function(next) { client.gists.create( { description: "Another bowl of pasta", public: "false", files: { "ravioli.js": { "content": "alert(\"want some ketchup with that?\");" } } }, function(err, res) { Assert.equal(err, null); var id = res.id; client.gists.edit( { id: id, description: "changed", files: { "ravioli.js": { "content": "alert(\"no ketchup, please.\");" } } }, function(err, res) { Assert.equal(err, null); client.gists.get( { id: id }, function(err, res) { Assert.equal(err, null); Assert.equal(res.user.login, "mikedeboertest"); Assert.equal(res.html_url, "https://gist.github.com/" + id); Assert.equal(res.public, false); Assert.equal(res.id, id); Assert.equal(res.description, "changed"); Assert.equal(res.files["ravioli.js"].content, "alert(\"no ketchup, please.\");"); client.gists["delete"]( { id: id }, function(err, res) { Assert.equal(err, null); next(); } ); } ); } ); } ); }); /* it("should successfully execute GET /gists/public (public)", function(next) { client.gists.public( {}, function(err, res) { Assert.equal(err, null); console.log(res); next(); } ); }); */ it("should successfully execute GET /gists/starred (starred)", function(next) { client.gists.starred( {}, function(err, res) { Assert.equal(err, null); Assert.equal(res.length, 1); var gist = res.pop(); Assert.equal(gist.user.login, "mikedeboertest"); Assert.equal(gist.html_url, "https://gist.github.com/77dc15615eab09a79b61"); Assert.equal(gist.created_at, "2012-10-05T16:10:40Z"); Assert.equal(gist.public, false); Assert.equal(gist.id, "77dc15615eab09a79b61"); next(); } ); }); it("should successfully execute GET /gists/:id (get)", function(next) { client.gists.create( { description: "Another bowl of pasta", public: "false", files: { "ravioli.js": { "content": "alert(\"want some ketchup with that?\");" } } }, function(err, res) { Assert.equal(err, null); var id = res.id; client.gists.get( { id: id }, function(err, res) { Assert.equal(err, null); Assert.equal(res.user.login, "mikedeboertest"); Assert.equal(res.html_url, "https://gist.github.com/" + id); Assert.equal(res.public, false); Assert.equal(res.id, id); Assert.equal(res.description, "Another bowl of pasta"); client.gists["delete"]( { id: id }, function(err, res) { Assert.equal(err, null); next(); } ); } ); } ); }); it("should successfully execute PUT /gists/:id/star (star)", function(next) { client.gists.create( { description: "Another bowl of pasta", public: "false", files: { "ravioli.js": { "content": "alert(\"want some ketchup with that?\");" } } }, function(err, res) { Assert.equal(err, null); var id = res.id; client.gists.star( { id: id }, function(err, res) { Assert.equal(err, null); client.gists.checkStar( { id: id }, function(err, res) { Assert.equal(err, null); //TODO: NO RESULT HERE??? client.gists["delete"]( { id: id }, function(err, res) { Assert.equal(err, null); next(); } ); } ); } ); } ); }); it("should successfully execute DELETE /gists/:id/star (deleteStar)", function(next) { client.gists.create( { description: "Another bowl of pasta", public: "false", files: { "ravioli.js": { "content": "alert(\"want some ketchup with that?\");" } } }, function(err, res) { Assert.equal(err, null); var id = res.id; client.gists.star( { id: id }, function(err, res) { Assert.equal(err, null); client.gists.deleteStar( { id: id }, function(err, res) { Assert.equal(err, null); client.gists["delete"]( { id: id }, function(err, res) { Assert.equal(err, null); next(); } ); } ); } ); } ); }); it("should successfully execute GET /gists/:id/star (checkStar)", function(next) { client.gists.create( { description: "Another bowl of pasta", public: "false", files: { "ravioli.js": { "content": "alert(\"want some ketchup with that?\");" } } }, function(err, res) { Assert.equal(err, null); var id = res.id; client.gists.star( { id: id }, function(err, res) { Assert.equal(err, null); client.gists["delete"]( { id: id }, function(err, res) { Assert.equal(err, null); next(); } ); } ); } ); }); it("should successfully execute POST /gists/:id/fork (fork)", function(next) { client.gists.fork( { id: "3047099" }, function(err, res) { Assert.equal(err, null); var id = res.id; Assert.equal(res.git_pull_url, "git://gist.github.com/" + id + ".git"); Assert.equal(res.git_push_url, "git@gist.github.com:" + id + ".git"); Assert.equal(res.description, "Why to call resume() after next()"); Assert.equal(typeof res.files["resume_after_next.md"], "object"); client.gists["delete"]( { id: id }, function(err, res) { Assert.equal(err, null); next(); } ); } ); }); it("should successfully execute DELETE /gists/:id (delete)", function(next) { client.gists.create( { description: "Another bowl of pasta", public: "false", files: { "ravioli.js": { "content": "alert(\"want some ketchup with that?\");" } } }, function(err, res) { Assert.equal(err, null); var id = res.id; client.gists["delete"]( { id: id }, function(err, res) { Assert.equal(err, null); next(); } ); } ); }); it("should successfully execute GET /gists/:gist_id/comments/:id (getComments)", function(next) { client.gists.createComment( { gist_id: "3047099", body: "This is a test comment.", }, function(err, res) { Assert.equal(err, null); var id = res.id; client.gists.getComments( { gist_id: "3047099" }, function(err, res) { var comment = res.pop(); Assert.equal(err, null); Assert.equal(comment.user.login, "mikedeboertest"); Assert.equal(comment.id, id); Assert.equal(comment.body, "This is a test comment."); client.gists["deleteComment"]( { gist_id: "3047099", id: id }, function(err, res) { Assert.equal(err, null); next(); } ); } ); } ); }); it("should successfully execute GET /gists/:gist_id/comments/:id (getComment)", function(next) { client.gists.createComment( { gist_id: "3047099", body: "This is a test comment.", }, function(err, res) { Assert.equal(err, null); var id = res.id; client.gists.getComment( { gist_id: "3047099", id: id }, function(err, res) { Assert.equal(err, null); Assert.equal(res.user.login, "mikedeboertest"); Assert.equal(res.id, id); Assert.equal(res.body, "This is a test comment."); client.gists["deleteComment"]( { gist_id: "3047099", id: id }, function(err, res) { Assert.equal(err, null); next(); } ); } ); } ); }); it("should successfully execute POST /gists/:gist_id/comments (createComment)", function(next) { client.gists.createComment( { gist_id: "3047099", body: "This is a test comment.", }, function(err, res) { Assert.equal(err, null); var id = res.id; client.gists.getComment( { gist_id: "3047099", id: id }, function(err, res) { Assert.equal(err, null); Assert.equal(res.user.login, "mikedeboertest"); Assert.equal(res.id, id); Assert.equal(res.body, "This is a test comment."); client.gists["deleteComment"]( { gist_id: "3047099", id: id }, function(err, res) { Assert.equal(err, null); next(); } ); } ); } ); }); it("should successfully execute PATCH /gists/:gist_id/comments/:id (editComment)", function(next) { client.gists.createComment( { gist_id: "3047099", body: "This is a test comment.", }, function(err, res) { Assert.equal(err, null); var id = res.id; client.gists.editComment( { gist_id: "3047099", id: id, body: "This comment has been edited." }, function(err, res) { Assert.equal(err, null); var id = res.id; client.gists.getComment( { gist_id: "3047099", id: id }, function(err, res) { Assert.equal(err, null); Assert.equal(res.user.login, "mikedeboertest"); Assert.equal(res.id, id); Assert.equal(res.body, "This comment has been edited."); client.gists["deleteComment"]( { gist_id: "3047099", id: id }, function(err, res) { Assert.equal(err, null); next(); } ); } ); } ); } ); }); it("should successfully execute DELETE /gists/:gist_id/comments/:id (deleteComment)", function(next) { client.gists.createComment( { gist_id: "3047099", body: "This is a test comment.", }, function(err, res) { Assert.equal(err, null); var id = res.id; client.gists["deleteComment"]( { gist_id: "3047099", id: id }, function(err, res) { Assert.equal(err, null); next(); } ); } ); }); });