### Crafting Guide - mod_pack.test.coffee Copyright (c) 2014-2015 by Redwood Labs All rights reserved. ### Item = require '../src/scripts/models/item' ModPack = require '../src/scripts/models/mod_pack' ModVersion = require '../src/scripts/models/mod_version' ######################################################################################################################## buildcraft = industrialCraft = minecraft = modPack = null ######################################################################################################################## describe 'ModPack', -> beforeEach -> minecraft = new ModVersion name:'Minecraft', version:'1.7.10', enabled:true new Item modVersion:minecraft, name:'Wool' new Item modVersion:minecraft, name:'Bed', recipes:[''] minecraft.registerSlug 'iron_chestplate', 'Iron Chestplate' buildcraft = new ModVersion name:'Buildcraft', version:'4.0', enabled:false new Item modVersion:buildcraft, name:'Stone Gear', recipes:[''] new Item modVersion:buildcraft, name:'Bed', recipes:[''] industrialCraft = new ModVersion name:'Industrial Craft', version:'2.0', enabled:false new Item modVersion:industrialCraft, name:'Resin' new Item modVersion:industrialCraft, name:'Rubber', recipes:[''] modPack = new ModPack modVersions:[minecraft, buildcraft, industrialCraft] describe 'enableModsForItem', -> it 'it ignores already-enabled mod versions', -> buildcraft.enabled = true modPack.enableModsForItem 'Stone Gear' minecraft.enabled.should.be.true buildcraft.enabled.should.be.true industrialCraft.enabled.should.be.false it 'it ignores mod versions not containing the item', -> modPack.enableModsForItem 'Stone Gear' minecraft.enabled.should.be.true buildcraft.enabled.should.be.true industrialCraft.enabled.should.be.false it 'enables disabled mod versions with the item', -> modPack.enableModsForItem 'Rubber' minecraft.enabled.should.be.true buildcraft.enabled.should.be.false industrialCraft.enabled.should.be.true describe 'findItemByName', -> it 'finds the requested item', -> item = modPack.findItemByName 'Bed' item.name.should.equal 'Bed' it 'ignores disabled mod versions', -> item = modPack.findItemByName 'Stone Gear' expect(item).to.be.null it "doesn't ignore mod versions when include disabled is requested", -> item = modPack.findItemByName 'Stone Gear', includeDisabled:true item.name.should.equal 'Stone Gear' describe 'findItemDisplay', -> it 'returns all data for a regular Minecraft item', -> display = modPack.findItemDisplay 'bed' display.iconUrl.should.equal '/data/minecraft/images/bed.png' display.itemUrl.should.equal '/item/Bed' display.itemName.should.equal 'Bed' display.modSlug.should.equal 'minecraft' it 'returns all data for an item in an enabled mod', -> buildcraft.enabled = true display = modPack.findItemDisplay 'stone_gear' display.iconUrl.should.equal '/data/buildcraft/images/stone_gear.png' display.itemUrl.should.equal '/item/Stone%20Gear' display.itemName.should.equal 'Stone Gear' display.modSlug.should.equal 'buildcraft' it 'returns data even for a disabled mod', -> display = modPack.findItemDisplay 'stone_gear' display.itemName.should.equal 'Stone Gear' it 'assumes an unfound item is from Minecraft', -> display = modPack.findItemDisplay 'iron_chestplate' display.iconUrl.should.equal '/data/minecraft/images/iron_chestplate.png' display.itemUrl.should.equal '/item/Iron%20Chestplate' display.itemName.should.equal 'Iron Chestplate' display.modSlug.should.equal 'minecraft' describe 'hasRecipe', -> it 'returns true when the item is present and has recipes', -> modPack.hasRecipe('Bed').should.be.true it 'returns false when the item is not present', -> modPack.hasRecipe('Iron Sword').should.be.false it 'returns false when the item does not have recipes', -> modPack.hasRecipe('Wool').should.be.false it 'ignores disabled mod versions', -> modPack.hasRecipe('Stone Gear').should.be.false it 'includes disabled mod versions when include disabled is requested', -> modPack.hasRecipe('Stone Gear', includeDisabled:true).should.be.true