Example #1
0
    parallel(buildTasks.map(pluck(0)), function(err, results) {
      if (err) {
        watcher.close();
        return out.error(err);
      }

      out(
        '!{0x21BA,green} {0} !{grey}{1}ms',
        buildTasks.map(pluck(1)).join(' '),
        Date.now() - start
      );

      // if we have a server instance, then close it
      if (server) {
        server.close();
      }

      // if we have a create server function then create the server instance
      if (typeof createServer == 'function') {
        server = createServer(opts);
        server.listen((opts || {}).port || 3000, handleServerStart);
      }

      // replace the old rebuild
      rebuild = _rebuild;
      if (changed) {
        process.nextTick(rebuild);
      }
    });
  return function(t) {
    var conn;
    var pending = connections.map(pluck('id'));

    function handleCallStart(peerId) {
      var peerIdx = pending.indexOf(peerId);

      t.ok(peerIdx >= 0, 'connected with ' + peerId);
      pending.splice(peerIdx, 1);

      console.log(pending);
      if (pending.length === 0) {
        conn.removeListener('call:started', handleCallStart);
      }
    }

    t.plan(connections.length + 1);
    conn = quickconnect(require('./signaling-server'), {
      room: roomId
    });

    // create a new data channel
    conn.createDataChannel('test');

    // wait for a connection to start on each of the existing channels
    if (pending.length > 0) {
      conn.on('call:started', handleCallStart);
    }

    connections.push(conn);
    t.pass('created new peer');
  };
    post('/people', { people: [{ name: 'Arnold Rimmer' }] }, function(err, res, body) {
      peopleIds = peopleIds.concat((body && body.people || []).map(pluck('id')));

      t.ifError(err);
      t.equal(res.statusCode, 201);
      t.ok(peopleIds[1], 'id generated');
    });
    post('/people', { people: [{ name: 'Dave Lister' }] }, function(err, res, body) {
      peopleIds = (body && body.people || []).map(pluck('id'));

      t.ifError(err);
      t.equal(res.statusCode, 201);
      t.ok(peopleIds[0], 'id generated');
    });
    post('/posts', { posts: [{ title: 'Another post' }] }, function(err, res, body) {
      postIds = postIds.concat((body && body.posts || []).map(pluck('id')));

      t.ifError(err);
      t.equal(res.statusCode, 201);
      t.ok(postIds[1], 'id generated');
    });
    post('/posts', { posts: [{ title: 'My experience with jsonapi' }] }, function(err, res, body) {
      postIds = (body && body.posts || []).map(pluck('id'));

      t.ifError(err);
      t.equal(res.statusCode, 201);
      t.ok(postIds[0], 'id generated');
    });
 get('/people/' + peopleIds.join(','), function(err, res, body) {
   t.ifError(err);
   t.equal(res.statusCode, 200);
   t.deepEqual((body && body.people || []).map(pluck('name')), [
     'Dave Lister',
     'Arnold Rimmer'
   ]);
 });
 get('/posts/' + postIds.join(','), function(err, res, body) {
   t.ifError(err);
   t.equal(res.statusCode, 200);
   t.deepEqual((body && body.posts || []).map(pluck('title')), [
     'My experience with jsonapi',
     'Another post'
   ]);
 });
Example #9
0
    pull.collect(function(err, values) {
      if (err) {
        return;
      }

      // update the strategies
      db.strategies = db.strategies.concat(values.map(pluck('key')));

      // for each of the strategies queue up a check operation
      db.strategies.forEach(function(value) {
        queue.add('checkStrategy', value);
      });
    })
Example #10
0
var detect = require('rtc-core/detect');
var findPlugin = require('rtc-core/plugin');
var PriorityQueue = require('priorityqueuejs');
var pluck = require('whisk/pluck');
var pluckSessionDesc = pluck('sdp', 'type');

// some validation routines
var checkCandidate = require('rtc-validator/candidate');

// the sdp cleaner
var sdpclean = require('rtc-sdpclean');
var parseSdp = require('rtc-sdp');

var PRIORITY_LOW = 100;
var PRIORITY_WAIT = 1000;

// priority order (lower is better)
var DEFAULT_PRIORITIES = [
  'candidate',
  'setLocalDescription',
  'setRemoteDescription',
  'createAnswer',
  'createOffer'
];

// define event mappings
var METHOD_EVENTS = {
  setLocalDescription: 'setlocaldesc',
  setRemoteDescription: 'setremotedesc',
  createOffer: 'offer',
  createAnswer: 'answer'