Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function canAppear(enemy, environment) {
- return Boolean(
- (environment.isSunny && !enemy.isVampire) ||
- (environment.isRainy && enemy.hasWaterResistantArmor) ||
- enemy.hasntAppearedInAnHour
- );
- }
- describe(canAppear, () => {
- let enemy = {};
- let environment = {};
- describe('when it is sunny', () => {
- beforeEach(() => {
- environment.isSunny = true;
- });
- describe('and the enemy is a vampire', () => {
- beforeEach(() => {
- enemy.isVampire = true;
- });
- it('is false', () => {
- expect(canAppear(enemy, environment)).toEqual(false);
- });
- describe('and the enemy has not appeared in an hour', () => {
- beforeEach(() => {
- enemy.hasntAppearedInAnHour = true;
- });
- it('is true', () => {
- expect(canAppear(enemy, environment)).toEqual(true);
- });
- });
- });
- describe('and the enemy is not a vampire', () => {
- beforeEach(() => {
- enemy.isVampire = false;
- });
- it('is true', () => {
- expect(canAppear(enemy, environment)).toEqual(true);
- });
- describe('and the enemy has not appeared in an hour', () => {
- beforeEach(() => {
- enemy.hasntAppearedInAnHour = true;
- });
- it('is true', () => {
- expect(canAppear(enemy, environment)).toEqual(true);
- });
- });
- });
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement