Skip to content

Commit

Permalink
create TimeEntry, show TimeEntry, list TimeEntrires + tests
Browse files Browse the repository at this point in the history
  • Loading branch information
nik-kor committed Oct 5, 2012
1 parent b0f9ab4 commit 9d6ae49
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 1 deletion.
22 changes: 22 additions & 0 deletions lib/redmine.js
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@ Redmine.prototype.getIssue = function(id, callback) {
this.request('GET', '/issues/' + id + '.json', {}, callback);
};

/**
* Issues http://www.redmine.org/projects/redmine/wiki/Rest_Issues
*/
Redmine.prototype.getIssues = function(params, callback) {
this.request('GET', '/issues.json', params, callback);
};
Expand All @@ -132,6 +135,25 @@ Redmine.prototype.deleteIssue = function(id, callback) {
};


/**
* Time Entries http://www.redmine.org/projects/redmine/wiki/Rest_TimeEntries
*/
Redmine.prototype.getTimeEntries = function(params, callback) {
this.request('GET', '/time_entries.json', params, callback);
};

Redmine.prototype.getTimeEntry = function(id, callback) {
if (typeof id == 'integer') {
throw new Error('Error: Argument #1 id must be integer');
}
this.request('GET', '/time_entries/' + id + '.json', {}, callback);
};

Redmine.prototype.postTimeEntry = function(params, callback) {
this.request('POST', '/time_entries.json', params, callback);
};


/*
* Exports
*/
Expand Down
1 change: 0 additions & 1 deletion test/redmine.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ var util = require('util');

var basedir = path.join(__dirname, '..');
var libdir = path.join(basedir, 'lib');
var assert = require('assert');

var Redmine = require(path.join(libdir, 'redmine.js'));

Expand Down
41 changes: 41 additions & 0 deletions test/time_entry.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
var path = require('path');
var assert = require('assert');
var util = require('util');

var basedir = path.join(__dirname, '..');
var libdir = path.join(basedir, 'lib');

var Redmine = require(path.join(libdir, 'redmine.js'));

assert.ok('TEST_REDMINE_APIKEY' in process.env);
assert.ok('TEST_REDMINE_HOST' in process.env);

var config = {
host: process.env.TEST_REDMINE_HOST,
apiKey: process.env.TEST_REDMINE_APIKEY
};

var redmine = new Redmine(config);


module.exports = {
'List time entries': function(beforeExit, assert)
{
redmine.getTimeEntries({project_id: 1, limit: 2}, function(err, data) {
assert.isNull(err, 'Err is null');
assert.equal(data.limit, 2);
});
},
'Show a time entry': function(beforeExit, assert)
{
redmine.getTimeEntry(1, function(err, data) {
assert.isNull(err, 'Err is null');
assert.type(data.time_entry, 'object', 'Data time entry is an object');

var timeEntry = data.time_entry;
assert.equal(1, timeEntry.id);
assert.equal('1', timeEntry.issue.id);
assert.equal('TimeEntry1', timeEntry.comments);
});
}
}

0 comments on commit 9d6ae49

Please sign in to comment.