コード例 #1
0
ファイル: result-test.js プロジェクト: jacott/piki-scoreboard
        test("authorized", ()=>{
          const otherOrg = Factory.createOrg();
          const user = Factory.createUser();
          TH.loginAs(user);

          assert.accessDenied(function () {
            rpc("Result.setBoulderScore", result._id, 1, 1, 3, 7);
          });
        });
コード例 #2
0
ファイル: result-test.js プロジェクト: jacott/piki-scoreboard
      beforeEach(()=>{
        category = Factory.createCategory({heatFormat: "QQF26F8", type: 'L'});
        event = Factory.createEvent({heats: [category._id]});
        result = Factory.createResult({scores: [1]});
        TH.loginAs(Factory.createUser('admin'));
        TH.noInfo();

        spy(Val, 'ensureString');
        spy(Val, 'ensureNumber');
      });
コード例 #3
0
ファイル: user-test.js プロジェクト: jacott/piki-scoreboard
    test("isGuest", ()=>{
      /**
       * Current user is guest only if logged in with koru.userId() 'guest'
       **/
      const adminUser = Factory.createUser({role: 'a'});
      const user = Factory.createUser({role: 'j'});
      const su = Factory.createUser('su');
      const guest = isServer ? User.guestUser() : Factory.createUser({_id: 'guest'});

      // not logged in
      assert.isFalse(User.isGuest());

      TH.loginAs(adminUser);
      assert.isFalse(User.isGuest());
      TH.loginAs(user);
      assert.isFalse(User.isGuest());
      TH.loginAs(su);
      assert.isFalse(User.isGuest());
      TH.loginAs(guest);
      assert.isTrue(User.isGuest());
    });
コード例 #4
0
ファイル: result-test.js プロジェクト: jacott/piki-scoreboard
      beforeEach(()=>{
        categories = Factory.createList(3, 'createCategory');
        catIds = util.mapField(categories);

        competitor = Factory.buildCompetitor({category_ids: catIds});
        competitor.$$save();

        TH.noInfo();

        TH.loginAs(Factory.createUser('admin'));

        spy(Val, 'ensureString');
        spy(Val, 'ensureNumber');
      });
コード例 #5
0
    beforeEach(()=>{
      v.org =TH.Factory.createOrg();
      v.user = TH.Factory.createUser({role: User.ROLE.admin});
      v.event = TH.Factory.createEvent({heats: undefined});
      v.clubType = TH.Factory.createTeamType({name: 'Club'});
      v.team = TH.Factory.createTeam({name: 'Rock Hoppers'});
      v.fjl = TH.Factory.createCategory({
        shortName: 'FJL', gender: 'f', name: 'Female Junior Lead', group: 'Youth Lead'});
      v.mjl = TH.Factory.createCategory({
        shortName: 'MJL', gender: 'm', name: 'Male Junior Lead', group: 'Youth Lead'});
      v.fol = TH.Factory.createCategory({
        shortName: 'FOL', gender: 'f', name: 'Female Open Lead', group: 'Open Lead'});
      v.sam = TH.Factory.createClimber({
        name: 'Sam Smith', dateOfBirth: '1996-04-16', number: 333});
      TH.loginAs(v.user);

      v.rpc = TH.mockRpc();
    });
コード例 #6
0
    test("teamResults rpc", ()=>{
      TH.loginAs(user);
      const tt1 = TH.Factory.createTeamType({_id: 'tt1'});
      const teams1 = TH.Factory.createList(
        2, 'createTeam', (index, options) => options._id = 'tm1'+index);
      const tt2 = TH.Factory.createTeamType({_id: 'tt2'});
      const teams2 = TH.Factory.createList(
        2, 'createTeam', (index, options) => options._id = 'tm2'+index);

      const climbers = TH.Factory.createList(
        3, 'createClimber', (index, options) => options._id = 'cl'+index);
      const cats = TH.Factory.createList(
        2, 'createCategory', (index, options) => options._id = 'cat'+index);
      const series = TH.Factory.createSeries();
      const ev1 = TH.Factory.createEvent({
        _id: 'ev1', series_id: series._id, heats: {[cats[0]._id]: 'LF4', [cats[1]._id]: 'BF6'}});
      const ev2 = TH.Factory.createEvent({
        _id: 'ev2', series_id: series._id, heats: {[cats[1]._id]: 'BF3'}});

      let cpidx = 0;

      const evOther = TH.Factory.createEvent();
      let team_ids;
      team_ids = [['tm10', 'tm20'], ['tm11'], ['tm10']];
      [{
        scores: [0.4, 99], time: 23, climber_id: climbers[0]._id,
      }, {
        scores: [0.1, 99], time: 123, climber_id: climbers[2]._id,
      }, {
        scores: [0.6, 99], time: 123, climber_id: climbers[1]._id,
      }].forEach((attrs, index) => {
        const competitor_id = TH.Factory.createCompetitor({
          _id: 'cp'+ ++cpidx, event_id: ev1._id, climber_id: attrs.climber_id,
          team_ids: team_ids[index]})._id;
        TH.Factory.createResult(Object.assign(attrs, {
          competitor_id, event_id: ev1._id, category_id: cats[0]._id}));
      });

      [{
        scores: [0.4, 100], climber_id: climbers[1]._id,
      }, {
        scores: [0.1, 99], climber_id: climbers[0]._id,
      }, {
        scores: [0.6, 99], climber_id: climbers[2]._id,
      }].forEach((attrs, index) => {
        const competitor_id = TH.Factory.createCompetitor({
          _id: 'cp'+ ++cpidx, event_id: ev1._id, climber_id: attrs.climber_id,
          team_ids: team_ids[index]})._id;
        TH.Factory.createResult(Object.assign(attrs, {
          competitor_id, event_id: ev1._id, category_id: cats[1]._id}));
      });

      team_ids = [['tm11'], ['tm10', 'tm21']];
      [{
        scores: [0.4, 50], climber_id: climbers[1]._id,
      }, {
        scores: [0.6, 50], climber_id: climbers[2]._id,
      }].forEach((attrs, index) => {
        const competitor_id = TH.Factory.createCompetitor({
          _id: 'cp'+ ++cpidx, event_id: ev2._id, climber_id: attrs.climber_id,
          team_ids: team_ids[index]})._id;
        TH.Factory.createResult(Object.assign(attrs, {
          competitor_id, event_id: ev2._id, category_id: cats[1]._id}));
      });

      spy(Val, 'ensureString');

      let ans = rpc('Ranking.teamResults', series._id);

      assert.calledWith(Val.ensureString, series._id);
      assert.equals(ans, [{
        event_id: ev1._id,
        scores: {tt1: {tm10: 344, tm11: 144}, tt2: {tm20: 200}},
      }, {
        event_id: ev2._id,
        scores: {tt1: {tm11: 90, tm10: 90}, tt2: {tm21: 90}},
      }]);
    });
コード例 #7
0
    test("results rpc", ()=>{
      TH.loginAs(user);
      const climbers = TH.Factory.createList(
        3, 'createClimber', (index, options) => options._id = 'cl'+index);
      const cats = TH.Factory.createList(
        2, 'createCategory', (index, options) => options._id = 'cat'+index);
      const series = TH.Factory.createSeries();
      const ev1 = TH.Factory.createEvent({
        _id: 'ev1', series_id: series._id, heats: {[cats[0]._id]: 'LF4', [cats[1]._id]: 'BF6'}});
      const ev2 = TH.Factory.createEvent({
        _id: 'ev2', series_id: series._id, heats: {[cats[1]._id]: 'BF3'}});

      const evOther = TH.Factory.createEvent();
      [{
        scores: [0.4, 99], time: 23, climber_id: climbers[0]._id,
      }, {
        scores: [0.1, 99], time: 123, climber_id: climbers[2]._id,
      }, {
        scores: [0.6, 99], time: 123, climber_id: climbers[1]._id,
      }].forEach(attrs => {
        const competitor_id = TH.Factory.createCompetitor({
          event_id: ev1._Id, climber_id: attrs.climber_id})._id;
        TH.Factory.createResult(Object.assign(attrs, {
          competitor_id, event_id: ev1._id, category_id: cats[0]._id}));
      });

      [{
        scores: [0.4, 100], climber_id: climbers[1]._id,
      }, {
        scores: [0.1, 99], climber_id: climbers[0]._id,
      }, {
        scores: [0.6, 99], climber_id: climbers[2]._id,
      }].forEach(attrs => {
        const competitor_id = TH.Factory.createCompetitor({
          event_id: ev1._Id, climber_id: attrs.climber_id})._id;
        TH.Factory.createResult(Object.assign(attrs, {
          competitor_id, event_id: ev1._id, category_id: cats[1]._id}));
      });

      [{
        scores: [0.4, 50], climber_id: climbers[1]._id,
      }, {
        scores: [0.6, 50], climber_id: climbers[2]._id,
      }].forEach(attrs => {
        const competitor_id = TH.Factory.createCompetitor({
          event_id: ev1._Id, climber_id: attrs.climber_id})._id;
        TH.Factory.createResult(Object.assign(attrs, {
          competitor_id, event_id: ev2._id, category_id: cats[1]._id}));
      });
      spy(Val, 'ensureString');

      let ans = rpc('Ranking.seriesResult', series._id);

      assert.calledWith(Val.ensureString, series._id);
      assert.equals(ans, [{
        event_id: ev1._id,
        cats: cats.map((cat, index) => {
          return {
            category_id: cat._id,
            fmt: ev1.heats[cat._id],
            results: [[climbers[(0+index) % 3]._id, 100], [climbers[(2+index) % 3]._id, 72],
                      [climbers[(1+index) % 3]._id, 72]]
          };
        }),
      }, {
        event_id: ev2._id,
        cats: [{
          category_id: cats[1]._id,
          fmt: ev2.heats[cats[1]._id],
          results: [[climbers[1]._id, 90], [climbers[2]._id, 90]]
        }],
      }]);
    });