Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
release-server-middleware
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
tools
release-server-middleware
Commits
06ff0dc6
Commit
06ff0dc6
authored
Nov 01, 2019
by
Vadym Gidulian
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added `Content-Disposition` header
parent
c5517585
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
33 additions
and
7 deletions
+33
-7
package.json
package.json
+1
-1
index.js
src/apis/index.js
+2
-0
index.js
test/api/index.js
+30
-6
No files found.
package.json
View file @
06ff0dc6
{
"name"
:
"@gviagroup/release-server-middleware"
,
"version"
:
"1.0.
0
"
,
"version"
:
"1.0.
1
"
,
"main"
:
"src/apis/index.js"
,
...
...
src/apis/index.js
View file @
06ff0dc6
...
...
@@ -24,7 +24,9 @@ module.exports = function ({filesDir, tmpFilesDir} = {}) {
const
filePath
=
await
releasesModel
.
getReleaseFilePath
({
version
:
req
.
params
.
version
});
if
(
!
filePath
)
return
null
;
const
info
=
await
releasesModel
.
getReleaseInfo
({
version
:
req
.
params
.
version
});
req
.
url
=
path
.
relative
(
releasesModel
.
FILES_DIR
,
filePath
);
res
.
set
(
'Content-Disposition'
,
`attachment; filename="
${
info
.
fileName
}
"`
);
next
();
});
const
latestHandler
=
(
req
,
res
,
next
)
=>
{
...
...
test/api/index.js
View file @
06ff0dc6
'use strict'
;
const
fs
=
require
(
'fs'
);
const
test
=
require
(
'ava'
);
const
axios
=
require
(
'axios'
);
const
del
=
require
(
'del'
);
const
FormData
=
require
(
'form-data'
);
const
mkdirp
=
require
(
'mkdirp'
);
const
server
=
require
(
'./_server'
);
const
releasesModel
=
require
(
'../../src/models/releases'
)();
const
server
=
require
(
'./_server'
);
test
.
serial
.
before
(
async
()
=>
{
test
.
serial
.
before
(
async
t
=>
{
del
.
sync
(
'/files/**'
,
{
dot
:
true
,
force
:
true
});
mkdirp
.
sync
(
releasesModel
.
TMP_FILES_DIR
);
t
.
deepEqual
(
fs
.
readdirSync
(
releasesModel
.
FILES_DIR
),
[
'.tmp'
]);
await
server
.
start
();
});
...
...
@@ -115,8 +125,12 @@ test.serial('Get release info', async t => {
});
test
.
serial
(
'Download release'
,
async
t
=>
{
const
{
data
}
=
await
axios
.
get
(
'http://api/1.0.0'
);
t
.
is
(
data
,
'Hello, World!'
);
const
response
=
await
axios
.
get
(
'http://api/1.0.0'
);
t
.
is
(
response
.
headers
[
'content-disposition'
],
'attachment; filename="release.txt"'
);
t
.
is
(
response
.
headers
[
'content-length'
],
'13'
);
t
.
is
(
response
.
data
,
'Hello, World!'
);
});
test
.
serial
(
'Get latest release info'
,
async
t
=>
{
...
...
@@ -128,8 +142,12 @@ test.serial('Get latest release info', async t => {
});
test
.
serial
(
'Download latest release'
,
async
t
=>
{
const
{
data
}
=
await
axios
.
get
(
'http://api/latest'
);
t
.
is
(
data
,
'Hello, World!'
);
const
response
=
await
axios
.
get
(
'http://api/latest'
);
t
.
is
(
response
.
headers
[
'content-disposition'
],
'attachment; filename="release.txt"'
);
t
.
is
(
response
.
headers
[
'content-length'
],
'13'
);
t
.
is
(
response
.
data
,
'Hello, World!'
);
});
test
.
serial
(
'Get release info of invalid SemVer version'
,
async
t
=>
{
...
...
@@ -242,6 +260,12 @@ test.serial.after.always(async () => {
await
server
.
stop
();
});
test
.
serial
.
after
(
async
t
=>
{
del
.
sync
(
'/files/**'
,
{
dot
:
true
,
force
:
true
});
t
.
deepEqual
(
fs
.
readdirSync
(
releasesModel
.
FILES_DIR
),
[]);
});
function
getFormData
({
fileName
})
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment