Skip to content

Commit

Permalink
add more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
pstadler committed Mar 24, 2017
1 parent 95c3105 commit 38a7048
Show file tree
Hide file tree
Showing 14 changed files with 561 additions and 17 deletions.
7 changes: 6 additions & 1 deletion .babelrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
{
"presets": ["es2015"],
"plugins": ["transform-object-assign"]
"plugins": ["transform-object-assign"],
"env": {
"coverage": {
"sourceMaps": "inline"
}
}
}
8 changes: 7 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# rokka.js [![NPM version][npm-version-image]][npm-url] [![Dependency Status][dependencies-image]][dependencies-url]
# rokka.js [![NPM version][npm-version-image]][npm-url] [![Build Status][build-status-image]][build-status-url] [![Coverage][coverage-image]][coverage-url] [![Dependency Status][dependencies-image]][dependencies-url]

JavaScript client library for [rokka](https://rokka.io/).

Expand Down Expand Up @@ -427,5 +427,11 @@ rokka.stats.get('myorg', '2017-01-01', '2017-01-31')
[npm-url]: https://npmjs.com/package/rokka
[npm-version-image]: https://img.shields.io/npm/v/rokka.svg?style=flat-square

[build-status-url]: https://travis-ci.org/rokka-io/rokka.js
[build-status-image]: https://img.shields.io/travis/rokka-io/rokka.js/master.svg?style=flat-square

[coverage-url]: https://coveralls.io/github/rokka-io/rokka.js?branch=master
[coverage-image]: https://img.shields.io/coveralls/rokka-io/rokka.js/master.svg?style=flat-square

[dependencies-url]: https://david-dm.org/rokka-io/rokka.js
[dependencies-image]: https://david-dm.org/rokka-io/rokka.js.svg?style=flat-square
8 changes: 3 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@
"test": "npm run lint && npm run ava",
"lint": "./node_modules/.bin/eslint .",
"ava": "ava test/**",
"coverage": "nyc npm run ava",
"coverage": "BABEL_ENV=coverage nyc npm run ava",
"coveralls": "npm run coverage; nyc report --reporter=text-lcov | coveralls",
"docs": "cd ./docs; node generate.js",
"compile": "./node_modules/.bin/babel -d lib/ src/",
"prepublish": "npm run compile"
},
"precommit": [
"docs",
"test"
"lint"
],
"repository": {
"type": "git",
Expand Down Expand Up @@ -58,9 +58,7 @@
"babel-polyfill": "^6.3.14"
},
"ava": {
"require": [
"babel-register"
],
"require": ["babel-core/register"],
"babel": "inherit"
}
}
27 changes: 27 additions & 0 deletions test/apis/memberships.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import test from 'ava'
import td from 'testdouble'

import * as transport from '../../src/transport'
const requestStub = td.replace(transport, 'default')

import rka from '../../src'

test('memberships.ROLES', t => {
const rokka = rka()
t.deepEqual(rokka.memberships.ROLES, { READ: 'read', WRITE: 'write', ADMIN: 'admin' })
})

test('memberships.create', t => {
const rokka = rka({ apiKey: 'APIKEY' })

rokka.memberships.create('myorg', 'user@example.org', rokka.memberships.ROLES.ADMIN)

const expectedArgs = {
method: 'PUT',
uri: 'https://api.rokka.io/organizations/myorg/memberships/user@example.org',
body: { role: 'admin' },
qs: null
}

td.verify(requestStub(td.matchers.contains(expectedArgs), td.matchers.anything()))
})
34 changes: 34 additions & 0 deletions test/apis/operations.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import test from 'ava'
import td from 'testdouble'

import * as transport from '../../src/transport'
const requestStub = td.replace(transport, 'default')

import rka from '../../src'

const knownOperations = ['resize', 'rotate', 'dropshadow', 'trim', 'crop', 'noop']

test('known operation functions exist', t => {
t.plan(knownOperations.length)

const rokka = rka({ apiKey: 'APIKEY' })

knownOperations.forEach(key => {
t.true(typeof rokka.operations[key] === 'function')
})
})

test('operations.list', t => {
const rokka = rka({ apiKey: 'APIKEY' })

rokka.operations.list('myorg')

const expectedArgs = {
method: 'GET',
uri: 'https://api.rokka.io/operations',
body: null,
qs: null
}

td.verify(requestStub(td.matchers.contains(expectedArgs), td.matchers.anything()))
})
22 changes: 22 additions & 0 deletions test/apis/organizations.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import test from 'ava'
import td from 'testdouble'

import * as transport from '../../src/transport'
const requestStub = td.replace(transport, 'default')

import rka from '../../src'

test('organizations.get', t => {
const rokka = rka({ apiKey: 'APIKEY' })

rokka.organizations.get('myorg')

const expectedArgs = {
method: 'GET',
uri: 'https://api.rokka.io/organizations/myorg',
body: null,
qs: null
}

td.verify(requestStub(td.matchers.contains(expectedArgs), td.matchers.anything()))
})
24 changes: 24 additions & 0 deletions test/apis/render.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import test from 'ava'

import rka from '../../src'

test('render.getUrl using stack', t => {
const rokka = rka({ apiKey: 'APIKEY' })

const url = rokka.render.getUrl('myorg', 'c421f4e8cefe0fd3aab22832f51e85bacda0a47a', 'png', 'mystack')

t.is(url, 'https://myorg.rokka.io/mystack/c421f4e8cefe0fd3aab22832f51e85bacda0a47a.png')
})

test('render.getUrl using custom operations', t => {
const rokka = rka({ apiKey: 'APIKEY' })

const operations = [
rokka.operations.rotate(45),
rokka.operations.resize(100, 100)
]

const url = rokka.render.getUrl('myorg', 'c421f4e8cefe0fd3aab22832f51e85bacda0a47a', 'png', operations)

t.not(url.indexOf('https://myorg.rokka.io/dynamic/rotate-angle-45--resize-width-100-height-100/c42'), -1)
})
93 changes: 93 additions & 0 deletions test/apis/sourceimages.metadata.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
import test from 'ava'
import td from 'testdouble'

import * as transport from '../../src/transport'
const requestStub = td.replace(transport, 'default')

import rka from '../../src'

test('sourceimages.setSubjectArea', t => {
const rokka = rka({ apiKey: 'APIKEY' })

const subjectArea = { x: 100, y: 100, width: 50, height: 50 }

rokka.sourceimages.setSubjectArea('myorg', 'c421f4e8cefe0fd3aab22832f51e85bacda0a47a', subjectArea)

const expectedArgs = {
method: 'PUT',
uri: 'https://api.rokka.io/sourceimages/myorg/c421f4e8cefe0fd3aab22832f51e85bacda0a47a/meta/dynamic/SubjectArea',
body: subjectArea,
qs: null,
json: true
}

td.verify(requestStub(td.matchers.contains(expectedArgs), td.matchers.anything()))
})

test('sourceimages.removeSubjectArea', t => {
const rokka = rka({ apiKey: 'APIKEY' })

rokka.sourceimages.removeSubjectArea('myorg', 'c421f4e8cefe0fd3aab22832f51e85bacda0a47a')

const expectedArgs = {
method: 'DELETE',
uri: 'https://api.rokka.io/sourceimages/myorg/c421f4e8cefe0fd3aab22832f51e85bacda0a47a/meta/dynamic/SubjectArea',
body: null,
qs: null,
json: true
}

td.verify(requestStub(td.matchers.contains(expectedArgs), td.matchers.anything()))
})

test('sourceimages.meta.add', t => {
const rokka = rka({ apiKey: 'APIKEY' })

const userData = { somefield: 'somevalue', 'int:some_number': 0, delete_this: null }

rokka.sourceimages.meta.add('myorg', 'c421f4e8cefe0fd3aab22832f51e85bacda0a47a', userData)

const expectedArgs = {
method: 'PATCH',
uri: 'https://api.rokka.io/sourceimages/myorg/c421f4e8cefe0fd3aab22832f51e85bacda0a47a/meta/user',
body: userData,
qs: null,
json: true
}

td.verify(requestStub(td.matchers.contains(expectedArgs), td.matchers.anything()))
})

test('sourceimages.meta.replace', t => {
const rokka = rka({ apiKey: 'APIKEY' })

const userData = { somefield: 'somevalue', 'int:another_number': 23 }

rokka.sourceimages.meta.replace('myorg', 'c421f4e8cefe0fd3aab22832f51e85bacda0a47a', userData)

const expectedArgs = {
method: 'PUT',
uri: 'https://api.rokka.io/sourceimages/myorg/c421f4e8cefe0fd3aab22832f51e85bacda0a47a/meta/user',
body: userData,
qs: null,
json: true
}

td.verify(requestStub(td.matchers.contains(expectedArgs), td.matchers.anything()))
})

test('sourceimages.meta.replace', t => {
const rokka = rka({ apiKey: 'APIKEY' })

rokka.sourceimages.meta.delete('myorg', 'c421f4e8cefe0fd3aab22832f51e85bacda0a47a')

const expectedArgs = {
method: 'DELETE',
uri: 'https://api.rokka.io/sourceimages/myorg/c421f4e8cefe0fd3aab22832f51e85bacda0a47a/meta/user',
body: null,
qs: null,
json: true
}

td.verify(requestStub(td.matchers.contains(expectedArgs), td.matchers.anything()))
})

0 comments on commit 38a7048

Please sign in to comment.