Add unit tests to verify data integrity
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
###
|
||||
Crafting Guide - data.test.coffee
|
||||
|
||||
Copyright (c) 2015 by Redwood Labs
|
||||
All rights reserved.
|
||||
###
|
||||
|
||||
Mod = require '../src/coffee/models/mod'
|
||||
ModParser = require '../src/coffee/models/mod_parser'
|
||||
ModVersion = require '../src/coffee/models/mod_version'
|
||||
ModVersionParser = require '../src/coffee/models/mod_version_parser'
|
||||
fs = require 'fs'
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
describe 'data files for', ->
|
||||
|
||||
for modSlug in fs.readdirSync './static/data/'
|
||||
do (modSlug)->
|
||||
describe modSlug, ->
|
||||
|
||||
mod = new Mod slug:modSlug
|
||||
modParser = new ModParser model:mod, showAllErrors:true
|
||||
modParser.parse fs.readFileSync "./static/data/#{modSlug}/mod.cg", 'utf8'
|
||||
|
||||
it 'loads mod.cg without errors', ->
|
||||
modParser.errors.should.eql []
|
||||
mod.name.should.not.equal ''
|
||||
mod.activeModVersion.should.exist
|
||||
|
||||
it 'has an icon file', ->
|
||||
stats = fs.statSync "./static/browse/#{modSlug}/icon.png"
|
||||
stats.isFile().should.be.true
|
||||
|
||||
mod.eachModVersion (modVersion)->
|
||||
do (modVersion)->
|
||||
describe modVersion.version, ->
|
||||
|
||||
modVersionParser = new ModVersionParser model:modVersion, showAllErrors:true
|
||||
fileName = "./static/data/#{modSlug}/#{modVersion.version}/mod-version.cg"
|
||||
modVersionParser.parse fs.readFileSync fileName, 'utf8'
|
||||
|
||||
it 'loads mod-version.cg without errors', ->
|
||||
modVersionParser.errors.should.eql []
|
||||
_.keys(modVersion._items).length.should.be.greaterThan 0
|
||||
_.keys(modVersion._recipes).length.should.be.greaterThan 0
|
||||
Reference in New Issue
Block a user