mirror of
https://github.com/azures04/crafatar.git
synced 2026-03-21 23:41:18 +01:00
93 lines
2.4 KiB
JavaScript
93 lines
2.4 KiB
JavaScript
var request = require('supertest');
|
|
var asset = require('assert');
|
|
var should = require('should');
|
|
var fs = require('fs')
|
|
var uuids = fs.readFileSync('uuids.txt').toString().split("\n");
|
|
// Get a random UUID in order to prevent rate limiting
|
|
var uuid = uuids[Math.floor((Math.random() * 200) + 1)];
|
|
|
|
// Only deletes files, doesn't delete directory.
|
|
var deleteFolderRecursive = function(path) {
|
|
if( fs.existsSync(path) ) {
|
|
fs.readdirSync(path).forEach(function(file,index){
|
|
var curPath = path + "/" + file;
|
|
if(fs.lstatSync(curPath).isDirectory()) {
|
|
deleteFolderRecursive(curPath);
|
|
} else {
|
|
fs.unlinkSync(curPath);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
describe('Avatar Serving', function(){
|
|
before(function() {
|
|
deleteFolderRecursive('../skins/');
|
|
})
|
|
describe('UUID', function(){
|
|
it("should respond with a 422", function(done){
|
|
request('http://localhost:3000')
|
|
.get('/avatars/invaliduuid')
|
|
.expect(422)
|
|
.end(function(err,res) {
|
|
if (err) throw err;
|
|
res.statusCode.should.eql(422);
|
|
done();
|
|
});
|
|
});
|
|
it("should respond with a 404", function(done){
|
|
request('http://localhost:3000')
|
|
.get('/avatars/2d5aa9cdaeb049189930461fc9b91dd5')
|
|
.expect(404)
|
|
.end(function(err,res) {
|
|
if (err) throw err;
|
|
res.statusCode.should.eql(404);
|
|
done();
|
|
});
|
|
});
|
|
it("should be downloaded", function(done){
|
|
request('http://localhost:3000')
|
|
.get('/avatars/' + uuid)
|
|
.expect(200)
|
|
.expect('X-Storage-Type', "downloaded")
|
|
.end(function(err,res) {
|
|
if (err) throw err;
|
|
res.statusCode.should.eql(200);
|
|
done();
|
|
});
|
|
});
|
|
it("should respond with a valid avatar", function(done){
|
|
request('http://localhost:3000')
|
|
.get('/avatars/' + uuid)
|
|
.expect(200)
|
|
.expect('Content-Type', "image/png")
|
|
.end(function(err,res) {
|
|
if (err) throw err;
|
|
res.statusCode.should.eql(200);
|
|
done();
|
|
});
|
|
});
|
|
it("should should be locally saved", function(done){
|
|
request('http://localhost:3000')
|
|
.get('/avatars/' + uuid)
|
|
.expect(200)
|
|
.expect('X-Storage-Type', "local")
|
|
.end(function(err,res) {
|
|
if (err) throw err;
|
|
res.statusCode.should.eql(200);
|
|
done();
|
|
});
|
|
});
|
|
it("should should be rate limited", function(done){
|
|
deleteFolderRecursive('../skins/');
|
|
request('http://localhost:3000')
|
|
.get('/avatars/' + uuid)
|
|
.expect(404)
|
|
.end(function(err,res) {
|
|
if (err) throw err;
|
|
res.statusCode.should.eql(404);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
}); |