Skip to content

Commit

Permalink
core: ensure unique values are returned
Browse files Browse the repository at this point in the history
- added unique filtering
- update release notes
- bump package

Impact: low
  • Loading branch information
indieisaconcept committed Jul 27, 2014
1 parent c0b6849 commit 3f897a0
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 33 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ fixtures.random(); // Returns a random item in the array.

## Release History

- **0.1.4** Ensure unique values are returned
- **0.1.3** Keyword updates
- **0.1.2** Documentation fixes
- **0.1.1** Support for combined configs
Expand Down
12 changes: 9 additions & 3 deletions lib/fixturl.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ var reverend = require('reverend'),

module.exports = function (/* String */ path, /* Object */ config) {

var fixtures = custArray();
var fixtures = [];

if (arguments.length === 0) {
throw new Error('fixturl requires at least 1 argument to generate a fixture');
}

if (!config) {
return fixtures.push(path), fixtures;
return fixtures.push(path), custArray.apply(null, fixtures);
}

config = Array.isArray(config) ? config : [config];
Expand All @@ -43,6 +43,12 @@ module.exports = function (/* String */ path, /* Object */ config) {

});

return fixtures;
// ensure there are no duplicates

fixtures = fixtures.filter(function (value, index, self) {
return self.indexOf(value) === index;
});

return custArray.apply(null, fixtures);

};
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "fixturl",
"version": "0.1.3",
"version": "0.1.4",
"description": "Pattern based fixture generator for urls",
"main": "index.js",
"scripts": {
Expand Down
62 changes: 33 additions & 29 deletions test/fixturl_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,7 @@ describe('fixturl', function() {
it('generates a single url fixture with a query', function () {

var result = fixturl('/some/path', {
query: {
foo: 'bar'
}
query: { foo: 'bar' }
});

expect(result.length).to.eql(1);
Expand All @@ -64,12 +62,8 @@ describe('fixturl', function() {
it('generates a single url fixture with both params & query', function () {

var result = fixturl('/some/path/:id', {
param: {
id: '12345',
},
query: {
foo: 'bar'
}
param: { id: '12345' },
query: { foo: 'bar' }
});

expect(result.length).to.eql(1);
Expand All @@ -81,20 +75,35 @@ describe('fixturl', function() {

var result = fixturl('/some/path/:id', [
{
param: {
id: '12345',
},
query: {
foo: 'bar'
}
param: { id: '12345' },
query: { foo: 'bar' }
}, {
param: { id: '6789' },
query: { foo: 'bar', buzz: 'fizz' }
}
]);

expect(result.length).to.eql(2);
expect(result[0]).to.eql('/some/path/12345?foo=bar');
expect(result[1]).to.eql('/some/path/6789?foo=bar&buzz=fizz');

});

it('generates a multiple unique url fixtures', function () {

var result = fixturl('/some/path/:id', [
{
param: { id: '12345' },
query: { foo: 'bar' }
}, {
param: { id: '6789' },
query: { foo: 'bar', buzz: 'fizz' }
}, {
param: {
id: '6789',
},
query: {
foo: 'bar',
buzz: 'fizz'
}
param: { id: '6789' },
query: { foo: 'bar', buzz: 'fizz' }
}, {
param: [ { id: '6789' } ],
query: [ { foo: 'bar', buzz: 'fizz' } ]
}
]);

Expand Down Expand Up @@ -131,13 +140,8 @@ describe('fixturl', function() {
it('generates a multiple url fixtures from a combined config ( single array )', function () {

var result = fixturl('/some/path/:id', {
param: [
{ id: '12345' },
{ id: '6789' }
],
query: {
foo: 'bar'
}
param: [ { id: '12345' }, { id: '6789' } ],
query: { foo: 'bar' }
});

expect(result.length).to.eql(2);
Expand Down

0 comments on commit 3f897a0

Please sign in to comment.