Skip to content

Commit bc930d1

Browse files
authored
Merge pull request #318 from garageScript/refactor
Apply Proper REST CONVENTION for Patch and Delete Fix #316
2 parents fc4b436 + 709d85d commit bc930d1

File tree

3 files changed

+26
-28
lines changed

3 files changed

+26
-28
lines changed

src/api/mapping.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ mappingRouter.get('/', (req, res) => {
9191
res.json(domains)
9292
})
9393

94-
mappingRouter.delete('/delete/:id', async (req, res) => {
94+
mappingRouter.delete('/:id', async (req, res) => {
9595
const domains = getMappings()
9696
const deletedDomain = domains.find(e => e.id === req.params.id)
9797
const updatedDomains = domains.filter(e => {

src/public/client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ class MappingItem {
8787
const delButton = helper.getElement('.deleteButton', mappingElement)
8888
delButton.onclick = (): void => {
8989
if (confirm('Are you sure want to delete this domain?')) {
90-
fetch(`/api/mappings/delete/${data.id}`, {
90+
fetch(`/api/mappings/${data.id}`, {
9191
method: 'DELETE',
9292
body: JSON.stringify({ data }),
9393
headers: {

src/tests/integration/mapping.test.ts

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,7 @@ describe('/api', () => {
3030
expect(postMapping.subDomain).toEqual(subDomain)
3131
expect(postMapping.domain).toEqual(domain)
3232
expect(postMapping.fullDomain).toEqual(`${subDomain}.${domain}`)
33-
const deleteResponse = await mappingAdapter(
34-
`/delete/${postMapping.id}`,
35-
'DELETE'
36-
)
33+
const deleteResponse = await mappingAdapter(`/${postMapping.id}`, 'DELETE')
3734
expect(deleteResponse.status).toEqual(200)
3835
const getMapping = await mappingAdapter(`/${postMapping.id}`, 'GET')
3936
expect(getMapping.status).toEqual(200)
@@ -64,10 +61,7 @@ describe('/api', () => {
6461
expect(mappingData.subDomain).toEqual(subDomain)
6562
expect(mappingData.fullDomain).toEqual(`${domain}`)
6663

67-
const deleteResponse = await mappingAdapter(
68-
`/delete/${postMapping.id}`,
69-
'DELETE'
70-
)
64+
const deleteResponse = await mappingAdapter(`/${postMapping.id}`, 'DELETE')
7165
expect(deleteResponse.status).toEqual(200)
7266
})
7367

@@ -82,7 +76,7 @@ describe('/api', () => {
8276
})
8377
expect(createMapping.status).toEqual(200)
8478
const mapping = await createMapping.json()
85-
const delMapping = await mappingAdapter(`/delete/${mapping.id}`, 'DELETE')
79+
const delMapping = await mappingAdapter(`/${mapping.id}`, 'DELETE')
8680
expect(delMapping.status).toEqual(200)
8781
const deletedMapping = await delMapping.json()
8882
expect(deletedMapping.port).toEqual(port)
@@ -113,11 +107,9 @@ describe('/api', () => {
113107
})
114108
expect(duplicatePostResponse.status).toEqual(400)
115109
const postMapping = await postResponse.json()
116-
const deleteResponse = await mappingAdapter(
117-
`/delete/${postMapping.id}`,
118-
'DELETE'
119-
)
110+
const deleteResponse = await mappingAdapter(`/${postMapping.id}`, 'DELETE')
120111
expect(deleteResponse.status).toEqual(200)
112+
121113
const getMapping = await mappingAdapter(`/${postMapping.id}`, 'GET')
122114
expect(getMapping.status).toEqual(200)
123115
const mappingData = await getMapping.json()
@@ -128,25 +120,31 @@ describe('/api', () => {
128120
const subDomain = `testing${uuidv4()}`
129121
const domain = 'VinDiesel'
130122
const port = '3522'
131-
const postResponse = await mappingAdapter('/', 'POST', {
123+
await mappingAdapter('/', 'POST', {
132124
domain,
133125
subDomain,
134126
port
135127
})
128+
136129
const secondDomain = 'PaulWalker'
137130
const nextPort = '3523'
138-
const secondResponse = await mappingAdapter('/', 'POST', {
139-
secondDomain,
140-
subDomain,
141-
nextPort
131+
await mappingAdapter('/', 'POST', {
132+
subDomain: secondDomain,
133+
port: nextPort,
134+
domain
142135
})
143-
expect(secondResponse.status).toEqual(200)
144-
const getMapping = await mappingAdapter('/', 'GET')
145-
const getMappingResponse = await getMapping.json()
146-
const postMap = await postResponse.json()
147-
const secondPostMap = await secondResponse.json()
148-
expect(getMappingResponse).toEqual([postMap, secondPostMap])
149-
await mappingAdapter(`/delete/${getMappingResponse[0].id}`, 'DELETE')
150-
await mappingAdapter(`/delete/${getMappingResponse[1].id}`, 'DELETE')
136+
137+
const mappingResponse = await mappingAdapter('/', 'GET')
138+
const mappings = await mappingResponse.json()
139+
140+
const firstFullDomain = `${subDomain}.${domain}`
141+
const secondFullDomain = `${secondDomain}.${domain}`
142+
const match1 = mappings.find(e => e.fullDomain === firstFullDomain)
143+
const match2 = mappings.find(e => e.fullDomain === secondFullDomain)
144+
145+
expect(match1.fullDomain).toEqual(firstFullDomain)
146+
expect(match2.fullDomain).toEqual(secondFullDomain)
147+
await mappingAdapter(`/${match1.id}`, 'DELETE')
148+
await mappingAdapter(`/${match2.id}`, 'DELETE')
151149
})
152150
})

0 commit comments

Comments
 (0)