Files
habitica/test/content/stable.test.js
Sabe Jones 287014518d Squashed commit of the following:
commit 28193f86fb
Author: Phillip Thelen <phillip@habitica.com>
Date:   Fri Jun 21 11:12:18 2024 +0200

    Fix serving memoized content

commit 877fe48225
Author: Phillip Thelen <phillip@habitica.com>
Date:   Thu Jun 20 12:23:24 2024 +0200

    correctly memoize conent api

commit e0f6f79c5b
Author: Phillip Thelen <phillip@habitica.com>
Date:   Thu Jun 20 10:11:27 2024 +0200

    don’t build multiple times on heroku

commit f62254d68e
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 19:40:20 2024 +0200

    fix client command

commit d054e6fc16
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 19:36:57 2024 +0200

    correct build call

commit 7231f699c1
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 19:32:32 2024 +0200

    try setting up with heroku buildpack

commit 1dae0793fd
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 18:50:32 2024 +0200

    call gulp build:prod

commit f18fbe86b6
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 18:40:53 2024 +0200

    build client

commit 61a61724ca
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 18:33:18 2024 +0200

    testing

commit 93cf30eb18
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 18:20:25 2024 +0200

    integration fix

commit cff08adcd0
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 18:13:20 2024 +0200

    specify dev docker file

commit 4da2ed4a1f
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 18:10:07 2024 +0200

    initialize stub

commit 11c5b26c59
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 18:08:45 2024 +0200

    test heroku file

commit ac85bb2e2d
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 18:03:15 2024 +0200

    fix stub reference

commit 74dfb2710f
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 18:01:27 2024 +0200

    test fixes

commit 8dbd3c3db1
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 17:37:04 2024 +0200

    fix canOwn test

commit 74b3b348ff
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 17:32:31 2024 +0200

    fix buy test

commit 3386d61fde
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 17:30:37 2024 +0200

    fix debug tests

commit 19da14531c
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 17:05:25 2024 +0200

    add chameleon to featured quests

commit 254dd80f24
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 17:05:14 2024 +0200

    fix import

commit 0bc3f16b4b
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 16:33:22 2024 +0200

    add new content to new release file

commit 5184973bd5
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 16:33:11 2024 +0200

    fix release date tests

commit b6accca5ca
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 16:33:06 2024 +0200

    fix armoire tests

commit fec68e6211
Author: Phillip Thelen <phillip@habitica.com>
Date:   Wed Jun 19 16:02:03 2024 +0200

    fix tests

commit fc63c906dd
Author: Phillip Thelen <phillip@habitica.com>
Date:   Mon Jun 10 14:44:21 2024 +0200

    Improve test coverage

commit 3333f8f0f5
Author: Phillip Thelen <phillip@habitica.com>
Date:   Mon Jun 10 14:24:59 2024 +0200

    allow hatching potions to have a release date

commit 89a3ac3dde
Author: Phillip Thelen <phillip@habitica.com>
Date:   Mon Jun 10 14:11:38 2024 +0200

    allow eggs to have a release date

    # Conflicts:
    #	test/content/armoire.test.js

commit 16551ec83f
Merge: f5f4974a73 2645bf6023
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Tue Jun 18 15:03:12 2024 -0400

    Merge branch '2024-07-content-prebuild' into subs-private

commit 2645bf6023
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Tue Jun 18 15:02:47 2024 -0400

    update habitica images

commit f5f4974a73
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Tue Jun 18 14:58:13 2024 -0400

    update habitica-images

commit 162e337d14
Merge: f2506c3231 21a7d36b7b
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Tue Jun 18 13:46:03 2024 -0400

    Merge branch '2024-07-content-prebuild' into subs-private

commit 21a7d36b7b
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Tue Jun 18 13:45:09 2024 -0400

    update sprites

commit f2506c3231
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Tue Jun 18 13:24:21 2024 -0400

    updated sprites css

commit d47641e25a
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Tue Jun 18 12:46:59 2024 -0400

    typo fix

commit fb8479ad1e
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Mon Jun 17 13:44:36 2024 -0400

    finish July prebuild

commit 3810cf3ef3
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Fri Jun 14 10:42:47 2024 -0400

    add chameleon quest

commit d05da3722c
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Thu Jun 13 17:12:43 2024 -0400

    add June background notes

commit b8a3440ef2
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Thu Jun 13 16:40:04 2024 -0400

    fix mystery item and background description

commit 44d63032d8
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Thu Jun 13 15:38:23 2024 -0400

    add subscriber gear, enchanted armoire, and background

commit 9d7da91ec6
Author: CuriousMagpie <eilatan@gmail.com>
Date:   Thu Jun 13 14:44:59 2024 -0400

    add sprites
2024-06-28 09:49:08 -05:00

170 lines
6.2 KiB
JavaScript

import {
each,
} from 'lodash';
import {
expectValidTranslationString,
} from '../helpers/content.helper';
import t from '../../website/common/script/content/translation';
import stable from '../../website/common/script/content/stable';
import eggs from '../../website/common/script/content/eggs';
import potions from '../../website/common/script/content/hatching-potions';
describe('stable', () => {
describe('dropPets', () => {
let clock;
beforeEach(() => {
clock = sinon.useFakeTimers(new Date('2020-05-20'));
});
afterEach(() => {
clock.restore();
});
it('contains a pet for each drop potion * each drop egg', () => {
const numberOfDropPotions = Object.keys(potions.drops).length;
const numberOfDropEggs = Object.keys(eggs.drops).length;
const numberOfDropPets = Object.keys(stable.dropPets).length;
const expectedTotal = numberOfDropPotions * numberOfDropEggs;
expect(numberOfDropPets).to.be.greaterThan(0);
expect(numberOfDropPets).to.equal(expectedTotal);
});
});
describe('questPets', () => {
it('contains a pet for each drop potion * each quest egg', () => {
const numberOfDropPotions = Object.keys(potions.drops).length;
const numberOfQuestEggs = Object.keys(eggs.quests).length;
const numberOfQuestPets = Object.keys(stable.questPets).length;
const expectedTotal = numberOfDropPotions * numberOfQuestEggs;
expect(numberOfQuestPets).to.be.greaterThan(0);
expect(numberOfQuestPets).to.equal(expectedTotal);
});
});
describe('premiumPets', () => {
it('contains a pet for each premium potion * each drop egg', () => {
const numberOfPremiumPotions = Object.keys(potions.premium).length;
const numberOfDropEggs = Object.keys(eggs.drops).length;
const numberOfPremiumPets = Object.keys(stable.premiumPets).length;
const expectedTotal = numberOfPremiumPotions * numberOfDropEggs;
expect(numberOfPremiumPets).to.be.greaterThan(0);
expect(numberOfPremiumPets).to.equal(expectedTotal);
});
});
describe('wackyPets', () => {
it('contains a pet for each wacky potion * each drop egg', () => {
const numberOfWackyPotions = Object.keys(potions.wacky).length;
const numberOfDropEggs = Object.keys(eggs.drops).length;
const numberOfWackyPets = Object.keys(stable.wackyPets).length;
const expectedTotal = numberOfWackyPotions * numberOfDropEggs;
expect(numberOfWackyPets).to.be.greaterThan(0);
expect(numberOfWackyPets).to.equal(expectedTotal);
});
});
describe('specialPets', () => {
it('each value is a valid translation string', () => {
each(stable.specialPets, pet => {
const string = t(pet);
expectValidTranslationString(string);
});
});
});
describe('dropMounts', () => {
it('contains a mount for each drop potion * each drop egg', () => {
const numberOfDropPotions = Object.keys(potions.drops).length;
const numberOfDropEggs = Object.keys(eggs.drops).length;
const numberOfDropMounts = Object.keys(stable.dropMounts).length;
const expectedTotal = numberOfDropPotions * numberOfDropEggs;
expect(numberOfDropMounts).to.be.greaterThan(0);
expect(numberOfDropMounts).to.equal(expectedTotal);
});
});
describe('questMounts', () => {
it('contains a mount for each drop potion * each quest egg', () => {
const numberOfDropPotions = Object.keys(potions.drops).length;
const numberOfQuestEggs = Object.keys(eggs.quests).length;
const numberOfQuestMounts = Object.keys(stable.questMounts).length;
const expectedTotal = numberOfDropPotions * numberOfQuestEggs;
expect(numberOfQuestMounts).to.be.greaterThan(0);
expect(numberOfQuestMounts).to.equal(expectedTotal);
});
});
describe('premiumMounts', () => {
it('contains a mount for each premium potion * each drop egg', () => {
const numberOfPremiumPotions = Object.keys(potions.premium).length;
const numberOfDropEggs = Object.keys(eggs.drops).length;
const numberOfPremiumMounts = Object.keys(stable.premiumMounts).length;
const expectedTotal = numberOfPremiumPotions * numberOfDropEggs;
expect(numberOfPremiumMounts).to.be.greaterThan(0);
expect(numberOfPremiumMounts).to.equal(expectedTotal);
});
});
describe('specialMounts', () => {
it('each value is a valid translation string', () => {
each(stable.specialMounts, mount => {
const string = t(mount);
expectValidTranslationString(string);
});
});
});
describe('petInfo', () => {
it('contains an entry for all pets', () => {
const dropNumber = Object.keys(stable.dropPets).length;
const questNumber = Object.keys(stable.questPets).length;
const specialNumber = Object.keys(stable.specialPets).length;
const premiumNumber = Object.keys(stable.premiumPets).length;
const wackyNumber = Object.keys(stable.wackyPets).length;
const allNumber = Object.keys(stable.petInfo).length;
expect(allNumber).to.be.greaterThan(0);
expect(allNumber).to.equal(
dropNumber + questNumber + specialNumber + premiumNumber + wackyNumber,
);
});
it('contains basic information about each pet', () => {
each(stable.petInfo, (pet, key) => {
expectValidTranslationString(pet.text);
expect(pet.type).to.be.a('string');
expect(pet.key).to.equal(key);
});
});
});
describe('mountInfo', () => {
it('contains an entry for all mounts', () => {
const dropNumber = Object.keys(stable.dropMounts).length;
const questNumber = Object.keys(stable.questMounts).length;
const specialNumber = Object.keys(stable.specialMounts).length;
const premiumNumber = Object.keys(stable.premiumMounts).length;
const allNumber = Object.keys(stable.mountInfo).length;
expect(allNumber).to.be.greaterThan(0);
expect(allNumber).to.equal(dropNumber + questNumber + specialNumber + premiumNumber);
});
it('contains basic information about each mount', () => {
each(stable.mountInfo, (mount, key) => {
expectValidTranslationString(mount.text);
expect(mount.type).to.be.a('string');
expect(mount.key).to.equal(key);
});
});
});
});