Skip to content

Commit

Permalink
fix(algolia): parse user agents with new search clients (#302)
Browse files Browse the repository at this point in the history
  • Loading branch information
francoischalifour committed Jan 23, 2020
1 parent 652bde4 commit 2f32ffb
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 2 deletions.
13 changes: 11 additions & 2 deletions src/common/parseAlgoliaClientVersion.js
@@ -1,6 +1,15 @@
'use strict';

module.exports = function parseAlgoliaClientVersion(agent) {
var parsed = agent.match(/Algolia for vanilla JavaScript (\d+\.)(\d+\.)(\d+)/);
if (parsed) return [parsed[1], parsed[2], parsed[3]];
var parsed =
// User agent for algoliasearch >= 3.33.0
agent.match(/Algolia for JavaScript \((\d+\.)(\d+\.)(\d+)\)/) ||
// User agent for algoliasearch < 3.33.0
agent.match(/Algolia for vanilla JavaScript (\d+\.)(\d+\.)(\d+)/);

if (parsed) {
return [parsed[1], parsed[2], parsed[3]];
}

return undefined;
};
27 changes: 27 additions & 0 deletions test/unit/parseAlgoliaClientVersion_spec.js
@@ -0,0 +1,27 @@
'use strict';

/* eslint-env mocha, jasmine */

describe('parseAlgoliaClientVersion', function() {
var parseAlgoliaClientVersion = require('../../src/common/parseAlgoliaClientVersion.js');

it('should return undefined for unknown user agents', function() {
expect(parseAlgoliaClientVersion('random user agent 1.2.3')).toEqual(
undefined
);
});

it('should parse user agents with algoliasearch < 3.33.0 format', function() {
expect(
parseAlgoliaClientVersion('Algolia for vanilla JavaScript 3.1.0')
).toEqual(['3.', '1.', '0']);
});

it('should parse user agents with algoliasearch >= 3.33.0 format', function() {
expect(parseAlgoliaClientVersion('Algolia for JavaScript (3.5.0)')).toEqual([
'3.',
'5.',
'0'
]);
});
});

0 comments on commit 2f32ffb

Please sign in to comment.