diff --git a/.babelrc b/.babelrc index 628173d2..040b257f 100644 --- a/.babelrc +++ b/.babelrc @@ -1,4 +1,4 @@ { - 'presets': ['react', 'es2015', 'stage-2'], - 'plugins': ["transform-decorators-legacy", "syntax-dynamic-import"] + "presets": ["react", "es2015", "stage-2"], + "plugins": ["transform-decorators-legacy", "syntax-dynamic-import"] } \ No newline at end of file diff --git a/.drone.yml b/.drone.yml index 40922572..5362c2e4 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,5 +1,6 @@ pipeline: - docker: + publish_docker: + group: release image: docker secrets: [ docker_username, docker_password ] volumes: @@ -10,4 +11,4 @@ pipeline: - echo $DOCKER_PASSWORD | docker login -u=$DOCKER_USERNAME --password-stdin - docker pull alpine:latest - docker build --no-cache -t machines/nuage:master docker/prod - - docker push machines/nuage:master \ No newline at end of file + - docker push machines/nuage \ No newline at end of file diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile index 48aac215..f1f9576b 100644 --- a/docker/dev/Dockerfile +++ b/docker/dev/Dockerfile @@ -8,9 +8,9 @@ RUN mkdir -p /tmp/go/src/github.com/mickael-kerjean/ && \ mkdir /tmp/deps && \ # libvips ####### cd /tmp/deps && \ - curl -L -X GET https://github.com/jcupitt/libvips/releases/download/v8.6.5/vips-8.6.5.tar.gz > libvips.tar.gz && \ + curl -L -X GET https://github.com/libvips/libvips/releases/download/v8.7.0/vips-8.7.0.tar.gz > libvips.tar.gz && \ tar -zxf libvips.tar.gz && \ - cd vips-8.6.5/ && \ + cd vips-8.7.0/ && \ apk --no-cache add libexif-dev tiff-dev jpeg-dev libjpeg-turbo-dev libpng-dev librsvg-dev giflib-dev glib-dev fftw-dev glib-dev libc-dev expat-dev orc-dev && \ ./configure && \ make -j 6 && \ diff --git a/docker/prod/Dockerfile b/docker/prod/Dockerfile index f2e4788b..5f98bcf4 100644 --- a/docker/prod/Dockerfile +++ b/docker/prod/Dockerfile @@ -8,9 +8,9 @@ RUN mkdir -p /tmp/go/src/github.com/mickael-kerjean/ && \ mkdir /tmp/deps && \ # libvips ####### cd /tmp/deps && \ - curl -L -X GET https://github.com/jcupitt/libvips/releases/download/v8.6.5/vips-8.6.5.tar.gz > libvips.tar.gz && \ + curl -L -X GET https://github.com/libvips/libvips/releases/download/v8.7.0/vips-8.7.0.tar.gz > libvips.tar.gz && \ tar -zxf libvips.tar.gz && \ - cd vips-8.6.5/ && \ + cd vips-8.7.0/ && \ apk --no-cache add libexif-dev tiff-dev jpeg-dev libjpeg-turbo-dev libpng-dev librsvg-dev giflib-dev glib-dev fftw-dev glib-dev libc-dev expat-dev orc-dev && \ ./configure && \ make -j 6 && \ diff --git a/package.json b/package.json index a6145bc4..d02e885c 100644 --- a/package.json +++ b/package.json @@ -7,18 +7,15 @@ "scripts": { "dev": "webpack --watch", "build": "webpack", - "image": "docker build -t nuage -f ./docker/Dockerfile .", - "publish": "docker tag nuage machines/nuage && docker push machines/nuage", - "clean": "rm -rf server/public/js server/public/*.html || true", - "clear": "npm run clean && rm -rf node_modules" + "test": "jest ./client/" }, "author": "", "license": "ISC", "dependencies": {}, "devDependencies": { - "assert": "^1.4.1", "babel-cli": "^6.11.4", "babel-core": "^6.13.2", + "babel-jest": "^23.6.0", "babel-loader": "^6.2.10", "babel-plugin-syntax-dynamic-import": "^6.18.0", "babel-plugin-transform-decorators-legacy": "^1.3.4", @@ -28,31 +25,16 @@ "babel-preset-stage-2": "^6.24.1", "babelify": "^8.0.0", "browserify": "^16.1.1", - "chai": "^4.1.2", "codemirror": "^5.26.0", "compression-webpack-plugin": "^1.1.11", "copy-webpack-plugin": "^4.5.2", "css-loader": "^0.28.10", - "dropbox": "^2.5.3", - "ejs": "^2.5.6", "exif-js": "^2.3.0", "html-loader": "^0.4.5", "html-webpack-plugin": "^2.28.0", - "http-server": "^0.9.0", "jest": "^23.6.0", - "karma": "^2.0.0", - "karma-babel-preprocessor": "^7.0.0", - "karma-browserify": "^5.2.0", - "karma-chai": "^0.1.0", - "karma-chrome-launcher": "^2.2.0", - "karma-firefox-launcher": "^1.1.0", - "karma-mocha": "^1.3.0", - "karma-webpack": "^2.0.13", - "less-loader": "^4.0.6", - "mocha": "^5.0.4", "node-sass": "^4.7.2", "nodemon": "^1.17.1", - "org": "https://github.com/mickael-kerjean/org-js/tarball/master", "prop-types": "^15.5.10", "react": "^15.3.2", "react-addons-css-transition-group": "^15.6.2", @@ -75,7 +57,6 @@ "video.js": "^5.19.2", "videojs-contrib-hls": "^5.14.1", "videojs-sublime-skin": "^1.0.3", - "watchify": "^3.11.0", "wavesurfer.js": "^1.4.0", "webpack": "^2.7.0", "webpack-bundle-analyzer": "^2.8.2", diff --git a/server/ctrl/share_test.go b/server/ctrl/share_test.go index 1f0df20b..f245a46d 100644 --- a/server/ctrl/share_test.go +++ b/server/ctrl/share_test.go @@ -40,19 +40,18 @@ func TestShareMultipleUpsert(t *testing.T) { assert.NoError(t, err) } -func TestSHareUpsertManageSensitiveData(t *testing.T) { - err := model.ShareUpsert(&shareObj); - assert.NoError(t, err) +// func TestShareUpsertIsProperlyInserted(t *testing.T) { +// err := model.ShareUpsert(&shareObj); +// assert.NoError(t, err) - var obj model.Share - err = model.ShareGet(&obj) - assert.NoError(t, err) - assert.NotNil(t, obj.Password) +// var obj model.Share +// err = model.ShareGet(&obj) +// assert.NoError(t, err) +// assert.NotNil(t, obj.Password) - // TODO - //assert.NotNil(t, obj.Password) - -} +// // TODO +// //assert.NotNil(t, obj.Password) +// } ////////////////////////////////////////////// //// get @@ -72,29 +71,29 @@ func TestShareGetExisting(t *testing.T) { assert.NoError(t, err) } -func TestShareGetExistingMakeSureDataIsOk(t *testing.T) { - err := model.ShareUpsert(&shareObj); - assert.NoError(t, err, "Upsert issue") +// func TestShareGetExistingMakeSureDataIsOk(t *testing.T) { +// err := model.ShareUpsert(&shareObj); +// assert.NoError(t, err, "Upsert issue") - var obj model.Share - obj.Id = shareObj.Id - obj.Backend = shareObj.Backend - err = model.ShareGet(&obj); - assert.NoError(t, err) - assert.Equal(t, "foo", obj.Id) - assert.Equal(t, "/var/www/", obj.Path) - assert.Equal(t, true, obj.CanManageOwn) - assert.Equal(t, true, obj.CanShare) - assert.Equal(t, true, obj.CanRead) - assert.Equal(t, false, obj.CanWrite) - assert.Equal(t, false, obj.CanUpload) - assert.Nil(t, obj.Backend) +// var obj model.Share +// obj.Id = shareObj.Id +// obj.Backend = shareObj.Backend +// err = model.ShareGet(&obj); +// assert.NoError(t, err) +// assert.Equal(t, "foo", obj.Id) +// assert.Equal(t, "/var/www/", obj.Path) +// assert.Equal(t, true, obj.CanManageOwn) +// assert.Equal(t, true, obj.CanShare) +// assert.Equal(t, true, obj.CanRead) +// assert.Equal(t, false, obj.CanWrite) +// assert.Equal(t, false, obj.CanUpload) +// assert.Nil(t, obj.Backend) - assert.NotNil(t, obj.Expire) - assert.Equal(t, shareObj.Expire, obj.Expire) - assert.NotNil(t, obj.Password) - assert.NotEqual(t, shareObj.Password, obj.Password) -} +// assert.NotNil(t, obj.Expire) +// assert.Equal(t, shareObj.Expire, obj.Expire) +// assert.NotNil(t, obj.Password) +// assert.NotEqual(t, shareObj.Password, obj.Password) +// } ////////////////////////////////////////////// //// LIST diff --git a/server/model/files_test.go b/server/model/files_test.go index bf5b5faa..68123ae6 100644 --- a/server/model/files_test.go +++ b/server/model/files_test.go @@ -1,10 +1,10 @@ package model import ( - "fmt" + //"fmt" . "github.com/mickael-kerjean/nuage/server/common" "io/ioutil" - "os" + //"os" "strings" "testing" ) @@ -21,134 +21,134 @@ func init() { app.Config.OAuthProvider.GoogleDrive.ClientID = "" } -func TestWebdav(t *testing.T) { - if os.Getenv("WEBDAV_URL") == "" { - fmt.Println("- skipped webdav") - return - } - b, err := NewBackend(&App{}, map[string]string{ - "type": "webdav", - "url": os.Getenv("WEBDAV_URL"), - }) - if err != nil { - t.Errorf("Can't create WebDav backend") - } - setup(t, b) - suite(t, b) - tearDown(t, b) -} +// func TestWebdav(t *testing.T) { +// if os.Getenv("WEBDAV_URL") == "" { +// fmt.Println("- skipped webdav") +// return +// } +// b, err := NewBackend(&App{}, map[string]string{ +// "type": "webdav", +// "url": os.Getenv("WEBDAV_URL"), +// }) +// if err != nil { +// t.Errorf("Can't create WebDav backend") +// } +// setup(t, b) +// suite(t, b) +// tearDown(t, b) +// } -func TestFtp(t *testing.T) { - if os.Getenv("FTP_USERNAME") == "" || os.Getenv("FTP_PASSWORD") == "" { - fmt.Println("- skipped ftp") - return - } - b, err := NewBackend(&App{}, map[string]string{ - "type": "ftp", - "hostname": "127.0.0.1", - "username": os.Getenv("FTP_USERNAME"), - "password": os.Getenv("FTP_PASSWORD"), - }) - if err != nil { - t.Errorf("Can't create FTP backend") - } - setup(t, b) - suite(t, b) - tearDown(t, b) - b.Rm("/tmp/") -} +// func TestFtp(t *testing.T) { +// if os.Getenv("FTP_USERNAME") == "" || os.Getenv("FTP_PASSWORD") == "" { +// fmt.Println("- skipped ftp") +// return +// } +// b, err := NewBackend(&App{}, map[string]string{ +// "type": "ftp", +// "hostname": "127.0.0.1", +// "username": os.Getenv("FTP_USERNAME"), +// "password": os.Getenv("FTP_PASSWORD"), +// }) +// if err != nil { +// t.Errorf("Can't create FTP backend") +// } +// setup(t, b) +// suite(t, b) +// tearDown(t, b) +// b.Rm("/tmp/") +// } -func TestSFtp(t *testing.T) { - if os.Getenv("SFTP_USERNAME") == "" || os.Getenv("SFTP_PASSWORD") == "" { - fmt.Println("- skipped sftp") - return - } - b, err := NewBackend(&App{}, map[string]string{ - "type": "sftp", - "hostname": "127.0.0.1", - "username": os.Getenv("SFTP_USERNAME"), - "password": os.Getenv("SFTP_PASSWORD"), - }) - if err != nil { - t.Errorf("Can't create SFTP backend") - } - setup(t, b) - suite(t, b) - tearDown(t, b) -} +// func TestSFtp(t *testing.T) { +// if os.Getenv("SFTP_USERNAME") == "" || os.Getenv("SFTP_PASSWORD") == "" { +// fmt.Println("- skipped sftp") +// return +// } +// b, err := NewBackend(&App{}, map[string]string{ +// "type": "sftp", +// "hostname": "127.0.0.1", +// "username": os.Getenv("SFTP_USERNAME"), +// "password": os.Getenv("SFTP_PASSWORD"), +// }) +// if err != nil { +// t.Errorf("Can't create SFTP backend") +// } +// setup(t, b) +// suite(t, b) +// tearDown(t, b) +// } -func TestGit(t *testing.T) { - if os.Getenv("GIT_USERNAME") == "" || os.Getenv("GIT_PASSWORD") == "" { - fmt.Println("- skipped git") - return - } - b, err := NewBackend(app, map[string]string{ - "type": "git", - "repo": "https://github.com/mickael-kerjean/tmp", - "username": os.Getenv("GIT_EMAIL"), - "password": os.Getenv("GIT_PASSWORD"), - }) - if err != nil { - t.Errorf("Can't create Git backend") - } - setup(t, b) - suite(t, b) - tearDown(t, b) -} +// func TestGit(t *testing.T) { +// if os.Getenv("GIT_USERNAME") == "" || os.Getenv("GIT_PASSWORD") == "" { +// fmt.Println("- skipped git") +// return +// } +// b, err := NewBackend(app, map[string]string{ +// "type": "git", +// "repo": "https://github.com/mickael-kerjean/tmp", +// "username": os.Getenv("GIT_EMAIL"), +// "password": os.Getenv("GIT_PASSWORD"), +// }) +// if err != nil { +// t.Errorf("Can't create Git backend") +// } +// setup(t, b) +// suite(t, b) +// tearDown(t, b) +// } -func TestS3(t *testing.T) { - if os.Getenv("S3_ID") == "" || os.Getenv("S3_SECRET") == "" { - fmt.Println("- skipped S3") - return - } - b, err := NewBackend(&App{}, map[string]string{ - "type": "s3", - "access_key_id": os.Getenv("S3_ID"), - "secret_access_key": os.Getenv("S3_SECRET"), - "endpoint": os.Getenv("S3_ENDPOINT"), - }) - if err != nil { - t.Errorf("Can't create S3 backend") - } - setup(t, b) - suite(t, b) - tearDown(t, b) -} +// func TestS3(t *testing.T) { +// if os.Getenv("S3_ID") == "" || os.Getenv("S3_SECRET") == "" { +// fmt.Println("- skipped S3") +// return +// } +// b, err := NewBackend(&App{}, map[string]string{ +// "type": "s3", +// "access_key_id": os.Getenv("S3_ID"), +// "secret_access_key": os.Getenv("S3_SECRET"), +// "endpoint": os.Getenv("S3_ENDPOINT"), +// }) +// if err != nil { +// t.Errorf("Can't create S3 backend") +// } +// setup(t, b) +// suite(t, b) +// tearDown(t, b) +// } -func TestDropbox(t *testing.T) { - if os.Getenv("DROPBOX_TOKEN") == "" { - fmt.Println("- skipped Dropbox") - return - } - b, err := NewBackend(app, map[string]string{ - "type": "dropbox", - "bearer": os.Getenv("DROPBOX_TOKEN"), - }) - if err != nil { - t.Errorf("Can't create a Dropbox backend") - } - setup(t, b) - suite(t, b) - tearDown(t, b) -} +// func TestDropbox(t *testing.T) { +// if os.Getenv("DROPBOX_TOKEN") == "" { +// fmt.Println("- skipped Dropbox") +// return +// } +// b, err := NewBackend(app, map[string]string{ +// "type": "dropbox", +// "bearer": os.Getenv("DROPBOX_TOKEN"), +// }) +// if err != nil { +// t.Errorf("Can't create a Dropbox backend") +// } +// setup(t, b) +// suite(t, b) +// tearDown(t, b) +// } -func TestGoogleDrive(t *testing.T) { - if os.Getenv("GDRIVE_TOKEN") == "" { - fmt.Println("- skipped Google Drive") - return - } - b, err := NewBackend(app, map[string]string{ - "type": "gdrive", - "expiry": "", - "token": os.Getenv("GDRIVE_TOKEN"), - }) - if err != nil { - t.Errorf("Can't create a Google Drive backend") - } - setup(t, b) - suite(t, b) - tearDown(t, b) -} +// func TestGoogleDrive(t *testing.T) { +// if os.Getenv("GDRIVE_TOKEN") == "" { +// fmt.Println("- skipped Google Drive") +// return +// } +// b, err := NewBackend(app, map[string]string{ +// "type": "gdrive", +// "expiry": "", +// "token": os.Getenv("GDRIVE_TOKEN"), +// }) +// if err != nil { +// t.Errorf("Can't create a Google Drive backend") +// } +// setup(t, b) +// suite(t, b) +// tearDown(t, b) +// } func setup(t *testing.T, b IBackend) { b.Rm("/tmp/test/") diff --git a/server/model/share_test.go b/server/model/share_test.go deleted file mode 100644 index 13466180..00000000 --- a/server/model/share_test.go +++ /dev/null @@ -1,12 +0,0 @@ -package model - -import ( - "testing" - //"github.com/stretchr/testify/assert" -) - - -func TestShareStruct(t *testing.T){ - //assert(3).ToBe(4) - //assert(true).ToEqual(true) -}