• R/O
  • HTTP
  • SSH
  • HTTPS

zephyr: Commit

This repository is for zephyr, which is implemented for a GUI of Eos.


Commit MetaInfo

Revisiona34ba659c9f29916e2b607f2787846d968ef63fe (tree)
Time2016-01-23 17:13:38
Authorhimetani_cafe <fumifumi@yasu...>
Commiterhimetani_cafe

Log Message

develop checkFile() and tested it.

Change Summary

Incremental Difference

--- a/server/class/DB.js
+++ b/server/class/DB.js
@@ -40,7 +40,8 @@ function DB() {
4040 sayHello: function() {
4141 return test;
4242 },
43- createFile: createFile
43+ createFile: createFile,
44+ checkFile: checkFile
4445 /*
4546 removeFile: removeFile,
4647 createDirectory: createDirectory,
@@ -58,19 +59,36 @@ function DB() {
5859 /**
5960 * createFile
6061 *
61- * @param name
62- * @param directory
63- * @returns {promise}<保存したファイルのファイル名(uuid)をresolveする>
62+ * @param fileName
63+ * @param parentDirectory
64+ * @returns {promise}<sequelize.createの結果を格納したobject | Error>
6465 */
6566 function createFile(fileName,parentDirectory) {
66- return new Promise(function(resolve) {
67+ return new Promise(function(resolve, reject) {
6768 var q = {
68- fileId: uuid.v1(),
69- name: fileName,
70- parentDirectory: parentDirectory,
71- fileType: 0
72- }
73- Files.create(q)
69+ where: {
70+ name: parentDirectory,
71+ fileType: 0
72+ }
73+ };
74+ Files.findOne(q)
75+ .then(function(r) {
76+ if(r === null) {
77+ return Promise.reject(new Error('parentDirectory doesn\'t exist.'));
78+ }
79+ })
80+ .then(function() {
81+ var q = {
82+ fileId: uuid.v1(),
83+ name: fileName,
84+ parentDirectory: parentDirectory,
85+ fileType: 0
86+ }
87+ return Files.create(q)
88+ })
89+ .catch(function(error) {
90+ reject(error);
91+ })
7492 .then(function(r) {
7593 resolve(r);
7694 });
@@ -78,6 +96,31 @@ function DB() {
7896 }
7997
8098 /**
99+ * checkFile
100+ * 同一ディレクトリに同名のファイルが存在するかどうか調べる
101+ * @param {string}fileName
102+ * @param {string}parentDirectory
103+ * @returns {promise}
104+ */
105+ function checkFile(fileName, parentDirectory) {
106+ return new Promise(function(resolve, reject) {
107+ var q = {
108+ where: {
109+ name: fileName,
110+ parentDirectory: parentDirectory
111+ }
112+ };
113+ Files.findOne(q)
114+ .then(function(r) {
115+ if(r.dataValues) {
116+ reject(new Error('parentDirectory doesn\'t exist.'));
117+ } else {
118+ resolve();
119+ }
120+ });
121+ });
122+ }
123+ /**
81124 *
82125 * @constructor
83126 * @returns {promise}
--- a/test/mocha/DB.test.js
+++ b/test/mocha/DB.test.js
@@ -5,48 +5,86 @@
55 var chaiAsPromised = require('chai-as-promised');
66 chai.use(chaiAsPromised);
77 var expect = chai.expect;
8- var should = chai.should;
8+ chai.should();
99
1010 //process.env['NODE_ENV'] = 'production';
1111
12- var constructor = `
13- /**
14- * createFile
15- *
16- * @param name
17- * @param directory
18- * @returns {promise}<保存したファイルのファイル名(uuid)をresolveする>
19- */
20- `;
21-
22- var createFile = `
23- /**
24- * createFile
25- *
26- * @param name
27- * @param directory
28- * @returns {promise}<保存したファイルのファイル名(uuid)をresolveする>
29- */
30- `;
12+
3113
3214 describe('DB クラス', function() {
33- var db;
34- before(function() {
35- return DB()
36- .then(function(r) {
37- db = r;
38- });
39- });
4015
16+ var constructor = `
17+ /**
18+ * createFile
19+ *
20+ * @param name
21+ * @param directory
22+ * @returns {promise}<保存したファイルのファイル名(uuid)をresolveする>
23+ */
24+ `;
4125 describe(constructor, function() {
26+ var db;
27+ before(function() {
28+ return DB()
29+ .then(function(r) {
30+ db = r;
31+ });
32+ });
33+
4234 it('should return hello when call sayHello', function() {
4335 expect(db.sayHello()).to.equal('hello');
4436 });
4537 });
38+
39+
40+
41+ var checkFile = `
42+ /**
43+ * checkFile
44+ * 同一ディレクトリに同名のファイルが存在するかどうか調べる
45+ * @param {string}fileName
46+ * @param {string}parentDirectory
47+ * @returns {promise}
48+ */
49+ `;
50+ describe(checkFile, function() {
51+ var db;
52+ before(function() {
53+ return DB()
54+ .then(function(r) {
55+ db = r;
56+ })
57+ .then(function() {
58+ return db.createFile('hoge.txt', '/');
59+ })
60+ });
61+
62+
63+ it('should be rejected when have the same name file in a directory', function() {
64+ return db.checkFile('hoge.txt', '/').should.be.rejected;
65+ });
66+ });
67+
68+
69+
70+ var createFile = `
71+ /**
72+ * createFile
73+ *
74+ * @param name
75+ * @param directory
76+ * @returns {promise}<保存したファイルのファイル名(uuid)をresolveする>
77+ */
78+ `;
4679 describe(createFile, function() {
80+ /*
4781 it('should return object which have proverty "dataValues"', function() {
48- return expect(db.createFile('hage.txt','root')).to.eventually.have.property('dataValues');
82+ return expect(db.createFile('hage.txt','/')).to.eventually.have.property('dataValues');
83+ });
84+ it('should be rejected when "parentDirectory" doesn\'t exist', function() {
85+ return db.createFile('hoge.txt', 'hoge').should.be.rejected;
4986 });
87+ */
5088 });
5189 });
5290 })();
Show on old repository browser