test(rest) mv: coverage

This commit is contained in:
coderaiser 2018-03-07 18:07:33 +02:00
parent a41fd8cea5
commit 712e80d53b
3 changed files with 63 additions and 11 deletions

View file

@ -12,8 +12,9 @@ const markdown = require(DIR + 'markdown');
const jaguar = require('jaguar');
const onezip = require('onezip');
const inly = require('inly');
const flop = require('flop');
const pullout = require('pullout/legacy');
const promisify = require('es6-promisify').promisify;
const move = promisify(require('flop').move);
const ponse = require('ponse');
const copymitter = require('copymitter');
const json = require('jonny');
@ -181,7 +182,7 @@ function onPUT(name, body, callback) {
files.from = root(files.from);
files.to = root(files.to);
copyFiles(files, flop.move, (error) => {
moveFiles(files, (error) => {
const data = !files.names ? files : files.names.slice();
const msg = formatMsg('move', data);
@ -303,8 +304,8 @@ function copy(from, to, names, fn) {
});
}
function copyFiles(files, processFunc, callback) {
let names = files.names;
function moveFiles(files, callback) {
let names = files.names.slice();
const copy = () => {
let isLast;
@ -325,17 +326,13 @@ function copyFiles(files, processFunc, callback) {
if (isLast)
return callback();
processFunc(from, to, error => {
if (error)
return callback(error);
copy();
});
move(from, to)
.then(copy)
.catch(callback);
};
check
.type('callback', callback, 'function')
.type('processFunc', processFunc, 'function')
.check({
files,
});

1
test/fixture/mv.txt Normal file
View file

@ -0,0 +1 @@
undefined

54
test/rest/mv.js Normal file
View file

@ -0,0 +1,54 @@
'use strict';
const {
join,
} = require('path');
const fs = require('fs');
const test = require('tape');
const {promisify} = require('es6-promisify');
const pullout = require('pullout');
const request = require('request');
const before = require('../before');
const rimraf = require('rimraf');
const fixtureDir = join(__dirname, '..', 'fixture') + '/';
const warp = (fn, ...a) => (...b) => fn(...b, ...a);
const _pullout = promisify(pullout);
const put = promisify((url, json, fn) => {
fn(null, request.put(url, {
json,
}));
});
test('cloudcmd: rest: mv', (t) => {
before({}, (port, after) => {
const tmp = join(fixtureDir, 'tmp');
const files = {
from: '/fixture/',
to: '/fixture/tmp/',
names: [
'mv.txt'
]
};
fs.mkdirSync(tmp);
put(`http://localhost:${port}/api/v1/mv`, files)
.then(warp(_pullout, 'string'))
.then((body) => {
t.equal(body, 'move: ok("["mv.txt"]")', 'should move');
t.end();
const file = fs.readFileSync(`${tmp}/mv.txt`);
fs.writeFileSync(`${fixtureDir}/mv.txt`, file);
rimraf.sync(tmp);
after();
})
.catch(console.error);
});
});