lol2x
lol2x

Reputation: 451

Testing JavaScript libraries with nodeunit - FileApi, substr undefined

I wan to test my library with nodeunit, and I use File Object in it, on website everything is working (FileAPI is implemented there) but when I'm trying to test it with nodeunit i get an error:

Fatal error: File is not defined

I assume that I have to add:

var FileAPI = require('file-api');
var File = FileAPI.File;

at the begging of the code, but I don't need that when I include that library to website, how to deal with that? To use nodeunit I had to add module.exports at the end, is it necessary as well? (code sample on github)

What's more, when I'm trying to test this code: https://github.com/GeoSmartCity-CIP/gsc-client/blob/feature/upload-data-file/src/upload/upload.js

with this test:

var gsc = require('../../src/upload/upload');
var FileAPI = require('file-api');
var File = FileAPI.File;
var exports = exports || {};

exports.isFileTypeCorrect = function(test) {
  var file = new File('test.geojson');
  var asd = new gsc.upload.Data(file);
  test.ok(asd.isFileTypeCorrect(), 'this assertion should pass');
  test.done();
};

I'm getting Fatal error: Cannot read property 'substr' of undefined error, what's the problem? EDIT: problem with substr is propably from isShapefileCorrect function, but still dont know why?

Upvotes: 0

Views: 30

Answers (1)

Sergey Yarotskiy
Sergey Yarotskiy

Reputation: 4824

var asd = new gsc.upload.Data(file); Isn't it asynchronous function? Then probably asd.isFileTypeCorrect() should be called inside upload callback. Also you defining isFileTypeCorrect function as module exports and call itself inside itself. Isnt it an infinite loop?

Upvotes: 0

Related Questions