test('overflow with mixed', function(t) {
      t.plan(4);

      toInsert.push(data.link());
      toInsert.push(data.link());
      toInsert.push(data.link());

      agent
         .post('/a/addManyLinks')
         .send({
            category: category,
            links: toInsert 
         })
         .expect(200)
         .expect('Content-Type', 'application/json; charset=utf-8')
         .end(function(err, res) {
            t.error(err, 'insert 3/4 new links into frameSize of 1');

            var data = res.body.data;
            t.equal(res.body.type, 'error', 'received error response');

            db.links.count(function(err, count) {
               t.error(err, 'count links');

               t.equal(count, CATEGORY_MAX, 'links at max again');
            });
         });
   });
   test('add mix links', function(t) {
      t.plan(4);

      toInsert.push(data.link());
      toInsert.push(data.link());
      toInsert.push(data.link());
      toInsert.push(data.link());
      toInsert.push(data.link());

      agent
         .post('/a/addManyLinks')
         .send({
            category: category,
            links: toInsert 
         })
         .expect(200)
         .expect('Content-Type', 'application/json; charset=utf-8')
         .end(function(err, res) {
            t.error(err, 'insert 15 mixed links');

            var data = res.body.data;
            t.equal(res.body.type, 'success', 'received success response');
            t.equal(data.valid, 15, 'found 15 valid links');
            t.equal(data.inserted, 5, 'inserted 5 links');
         });
   });
   test('add links individually', function(t) {
      t.plan(14);

      var newLink = data.link(category);
      var errLink = data.link(category);
      errLink.url = 'http://unsupported.com/v=3223423423';

      agent
         .post('/a/addLink')
         .type('form')
         .send(errLink)
         .expect(200)
         .expect('Content-Type', 'application/json; charset=utf-8')
         .end(function(err, res) {
            t.error(err);
            t.ok(res.body, 'received response object');
            t.ok(res.body.type === 'error', 'received error response');
         });

      agent
         .post('/a/addLink')
         .type('form')
         .send(newLink)
         .expect(200)
         .expect('Content-Type', 'application/json; charset=utf-8')
         .end(function(err, res) {
            t.error(err, 'add valid link');
            var data = res.body.data;
            t.ok(res.body, 'received response object');
            t.equal(res.body.type, 'success', 'received success response');
            t.ok(data, 'data object returned');
            t.ok(data.url === newLink.url, 'data contains inserted object');
         });

      agent
         .post('/a/addLink')
         .type('form')
         .send(newLink)
         .expect(200)
         .expect('Content-Type', 'application/json; charset=utf-8')
         .end(function(err, res) {
            t.error(err, 'adding same link');
            var data = res.body.data;
            t.ok(res.body, 'received response object');
            t.ok(res.body.type === 'error', 'received error response');
            t.ok(data, 'data is returned');
            t.ok(data.category, 'data contains category name');
            t.ok(res.body.msg.indexOf('Link already exists') >= 0, 'existing link message sent');
         });

   });
   test('test addLink bound', function(t) {
      t.plan(2);

      agent
         .post('/a/addLink')
         .send(data.link(category))
         .expect(200)
         .expect('Content-Type', 'application/json; charset=utf-8')
         .end(function(err, res) {
            t.error(err, 'add another link');

            var data = res.body.data;
            t.equal(res.body.type, 'error', 'received error response');
         });
   });