token_test.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. suite('lunr.Token', function () {
  2. suite('#toString', function () {
  3. test('converts the token to a string', function () {
  4. var token = new lunr.Token('foo')
  5. assert.equal('foo', token.toString())
  6. })
  7. })
  8. suite('#metadata', function () {
  9. test('can attach arbitrary metadata', function () {
  10. var token = new lunr.Token('foo', { length: 3 })
  11. assert.equal(3, token.metadata.length)
  12. })
  13. })
  14. suite('#update', function () {
  15. test('can update the token value', function () {
  16. var token = new lunr.Token('foo')
  17. token.update(function (s) {
  18. return s.toUpperCase()
  19. })
  20. assert.equal('FOO', token.toString())
  21. })
  22. test('metadata is yielded when updating', function () {
  23. var metadata = { bar: true },
  24. token = new lunr.Token('foo', metadata),
  25. yieldedMetadata
  26. token.update(function (_, md) {
  27. yieldedMetadata = md
  28. })
  29. assert.equal(metadata, yieldedMetadata)
  30. })
  31. })
  32. suite('#clone', function () {
  33. var token = new lunr.Token('foo', { bar: true })
  34. test('clones value', function () {
  35. assert.equal(token.toString(), token.clone().toString())
  36. })
  37. test('clones metadata', function () {
  38. assert.equal(token.metadata, token.clone().metadata)
  39. })
  40. test('clone and modify', function () {
  41. var clone = token.clone(function (s) {
  42. return s.toUpperCase()
  43. })
  44. assert.equal('FOO', clone.toString())
  45. assert.equal(token.metadata, clone.metadata)
  46. })
  47. })
  48. })