var _ = require('lodash');
var test = require('tap').test;
var emoticons = require('../emoticons');

var tags = [ 'angry',
  'animal',
  'apologizing',
  'bear',
  'bird',
  'cat',
  'confused',
  'crazy',
  'crying',
  'dancing',
  'dead',
  'dog',
  'embarassed',
  'evil',
  'excited',
  'fun',
  'happy',
  'hiding',
  'hugging',
  'hurt',
  'kissing',
  'laughing',
  'love',
  'monkey',
  'music',
  'pig',
  'rabbit',
  'running',
  'sad',
  'scared',
  'sea creature',
  'sleeping',
  'smug',
  'stare',
  'surprised',
  'surrender',
  'table flip',
  'thinking',
  'troll',
  'waving',
  'whatever',
  'winking',
  'worried',
  'writing'
];

test('it is parseable JSON', function(t) {
  t.plan(1);
  t.type(emoticons, 'object');
});

test('expected indexes', function(t) {
  var keys = Object.keys(emoticons);
  t.plan(2);
  t.notEqual(keys.indexOf('emoticons'), -1);
  t.notEqual(keys.indexOf('tags'), -1);
});

test('expected tags', function(t) {
  var tags = _.map(emoticons.tags, 'title');
  t.plan(tags.length + 1);
  t.equal(emoticons.tags.length, tags.length);
  tags.forEach(function (tag) {
    t.notEqual(tags.indexOf(tag), -1);
  });
});

test('expected emojicons', function(t) {
  t.plan(1);
  t.equal(emoticons.emoticons.length, 1561);
});

@@ -135,19 +135,13 @@
 %0A  '
-apologizing
+sorry
 ',%0A 
@@ -199,19 +199,16 @@
 ,%0A  'cry
-ing
 ',%0A  'da
@@ -209,19 +209,17 @@
 %0A  'danc
-ing
+e
 ',%0A  'de
@@ -297,19 +297,17 @@
 ,%0A  'hid
-ing
+e
 ',%0A  'hu
@@ -311,12 +311,8 @@
 'hug
-ging
 ',%0A 
@@ -327,19 +327,16 @@
 %0A  'kiss
-ing
 ',%0A  'la
@@ -338,19 +338,16 @@
   'laugh
-ing
 ',%0A  'lo
@@ -405,12 +405,8 @@
 'run
-ning
 ',%0A 
@@ -451,19 +451,16 @@
   'sleep
-ing
 ',%0A  'sm
@@ -529,19 +529,16 @@
   'think
-ing
 ',%0A  'tr
@@ -549,19 +549,17 @@
 ,%0A  'wav
-ing
+e
 ',%0A  'wh
@@ -574,19 +574,16 @@
 %0A  'wink
-ing
 ',%0A  'wo
@@ -601,11 +601,9 @@
 writ
-ing
+e
 '%0A%5D;
@@ -913,25 +913,29 @@
 (t) %7B%0A  var 
-t
+dataT
 ags = _.map(
@@ -1036,17 +1036,21 @@
 gth);%0A  
-t
+dataT
 ags.forE
@@ -1102,24 +1102,54 @@
 xOf(tag), -1
+, 'Tags should include ' + tag
 );%0A  %7D);%0A%7D);

fix and update the tests for the new tags