Sha256: 0a9f40aad60c97c879fbd9b1edf946def4077ef37a9fed3a058388effef17ce5

Contents?: true

Size: 1.58 KB

Versions: 110

Compression:

Stored size: 1.58 KB

Contents

var Robot = require('./robot-name');

describe('Robot', function() {
  // NOTE: The 'beforeEach()' and 'afterEach()' act as setup/teardown for this
  // test suite. See more: http://jasmine.github.io/2.0/introduction.html
  var robot;

  beforeEach(function() {
    robot = new Robot();
  });

  afterEach(function() {
    robot = null;
  });

  it('has a name', function() {
    expect(robot.name).toMatch(/^[A-Z]{2}\d{3}$/);
  });

  xit('name is the same each time', function() {
    expect(robot.name).toEqual(robot.name);
  });

  xit('different robots have different names', function() {
    var differentRobot = new Robot();
    expect(differentRobot.name).not.toEqual(robot.name);
  });

  xit('is able to reset the name', function() {
    var originalName = robot.name;
    robot.reset();
    var newName = robot.name;
    expect(newName).toMatch(/^[A-Z]{2}\d{3}$/);
    expect(originalName).not.toEqual(newName);
  });

  xit('should set a unique name after reset', function() {
    var i,
        numResets = 10000,
        usedNames = {};

    usedNames[robot.name] = true;

    for (i = 0; i < numResets; i++) {
      robot.reset();
      usedNames[robot.name] = true;
    }

    expect(Object.keys(usedNames).length).toEqual(numResets + 1);
  });
  
  //This test is optional. 
  xit('there can be lots of robots with different names each', function() {
    var i,
        numRobots = 10000,
        usedNames = {};

    for (i = 0; i < numRobots; i++) {
      var newRobot = new Robot();
      usedNames[newRobot.name] = true;
    }

    expect(Object.keys(usedNames).length).toEqual(numRobots);
  });
});

Version data entries

110 entries across 110 versions & 1 rubygems

Version Path
trackler-2.2.1.37 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.36 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.35 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.34 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.33 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.32 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.31 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.30 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.29 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.28 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.27 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.26 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.25 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.24 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.23 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.22 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.21 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.20 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.19 tracks/javascript/exercises/robot-name/robot-name.spec.js
trackler-2.2.1.18 tracks/javascript/exercises/robot-name/robot-name.spec.js