mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 02:35:49 +00:00
test(rest) mv: coverage
This commit is contained in:
parent
a41fd8cea5
commit
712e80d53b
3 changed files with 63 additions and 11 deletions
|
|
@ -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
1
test/fixture/mv.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
undefined
|
||||
54
test/rest/mv.js
Normal file
54
test/rest/mv.js
Normal 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);
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue