var assert = require('assert') var QueryParser = require('./index') var tests = [ function() { var parser = new QueryParser() assert.deepEqual(parser.parse('a'), [ { field: null , op: null , query: 'a' } ]) } , function() { var parser = new QueryParser() assert.deepEqual(parser.parse('a b c'), [ { field: null , op: null , query: 'a' } , { field: null , op: null , query: 'b' } , { field: null , op: null , query: 'c' } ]) } , function() { var parser = new QueryParser() assert.deepEqual(parser.parse('serial:foo'), [ { field: 'serial' , op: null , query: 'foo' } ]) } /* This test is currently failing, but I'm not sure if I care enough about it. Commented out for now. , function() { var parser = new QueryParser() assert.deepEqual(parser.parse('a:b:c'), [ { field: 'a' , query: 'b:c' } ]) } */ , function() { var parser = new QueryParser() assert.deepEqual(parser.parse('name:"Galaxy S2 LTE"'), [ { field: 'name' , op: null , query: 'Galaxy S2 LTE' } ]) } , function() { var parser = new QueryParser() assert.deepEqual(parser.parse('name:"Galaxy S2 LTE" black'), [ { field: 'name' , op: null , query: 'Galaxy S2 LTE' } , { field: null , op: null , query: 'black' } ]) } , function() { var parser = new QueryParser() assert.deepEqual(parser.parse('"foo bar"'), [ { field: null , op: null , query: 'foo bar' } ]) } , function() { var parser = new QueryParser() assert.deepEqual(parser.parse('version:>=4.1'), [ { field: 'version' , op: '>=' , query: '4.1' } ]) } , function() { var parser = new QueryParser() assert.deepEqual(parser.parse('version: >=4.1'), [ { field: 'version' , op: '>=' , query: '4.1' } ]) } , function() { var parser = new QueryParser() assert.deepEqual(parser.parse('version: < 4.1'), [ { field: 'version' , op: '<' , query: '4.1' } ]) } , function() { var parser = new QueryParser() assert.deepEqual(parser.parse('Galaxy operator: DOCOMO'), [ { field: null , op: null , query: 'Galaxy' } , { field: 'operator' , op: null , query: 'DOCOMO' } ]) } ] tests.forEach(function(test) { test() })