1
0
mirror of https://github.com/sasjs/server.git synced 2026-01-08 15:00:05 +00:00

test(deploy): cover deploy route with unit test

This commit is contained in:
Yury Shkoda
2021-07-09 08:28:33 +03:00
parent b4bf72f704
commit febdeed2c5
7 changed files with 3500 additions and 13 deletions

10
src/app.ts Normal file
View File

@@ -0,0 +1,10 @@
import express from 'express'
import indexRouter from './routes'
const app = express()
app.use(express.json())
app.use('/', indexRouter)
export default app

View File

@@ -0,0 +1,97 @@
import request from 'supertest'
import app from '../../app'
import { getTreeExample } from '../../controllers/deploy'
import { getTmpFilesFolderPath } from '../../utils/file'
import { folderExists, fileExists, readFile, deleteFolder } from '@sasjs/utils'
import path from 'path'
describe('deploy', () => {
const shouldFailAssertion = async (payload: any) => {
const res = await request(app).post('/deploy').send(payload)
expect(res.statusCode).toEqual(400)
expect(res.body).toEqual(getTreeExample())
}
it('should respond with payload example if valid payload was not provided', async () => {
await shouldFailAssertion(null)
await shouldFailAssertion(undefined)
await shouldFailAssertion('data')
await shouldFailAssertion({})
await shouldFailAssertion({
userId: 1,
title: 'test is cool'
})
await shouldFailAssertion({
membersWRONG: []
})
await shouldFailAssertion({
members: {}
})
await shouldFailAssertion({
members: [
{
nameWRONG: 'jobs',
type: 'folder',
members: []
}
]
})
await shouldFailAssertion({
members: [
{
name: 'jobs',
type: 'WRONG',
members: []
}
]
})
await shouldFailAssertion({
members: [
{
name: 'jobs',
type: 'folder',
members: [
{
name: 'extract',
type: 'folder',
members: [
{
name: 'makedata1',
type: 'service',
codeWRONG: '%put Hello World!;'
}
]
}
]
}
]
})
})
it('should respond with payload example if valid payload was not provided', async () => {
const res = await request(app)
.post('/deploy')
.send(getTreeExample().supportedFormat)
expect(res.statusCode).toEqual(200)
expect(res.text).toEqual('Files deployed successfully to @sasjs/server.')
await expect(folderExists(getTmpFilesFolderPath())).resolves.toEqual(true)
const testJobFolder = path.join(getTmpFilesFolderPath(), 'jobs', 'extract')
await expect(folderExists(testJobFolder)).resolves.toEqual(true)
const testJobFile = path.join(
testJobFolder,
getTreeExample().supportedFormat.members[0].members[0].members[0].name
)
await expect(fileExists(testJobFile)).resolves.toEqual(true)
await expect(readFile(testJobFile)).resolves.toEqual(
getTreeExample().supportedFormat.members[0].members[0].members[0].code
)
await deleteFolder(getTmpFilesFolderPath())
})
})

View File

@@ -1,9 +1,4 @@
import express from 'express'
import indexRouter from './routes'
const app = express()
app.use('/', indexRouter)
import app from './app'
const port = 5000
app.listen(port, () => {