Skip to content

Commit 56bf0a6

Browse files
AndyAndy
authored andcommitted
starting
1 parent 8625058 commit 56bf0a6

File tree

6 files changed

+163
-17627
lines changed

6 files changed

+163
-17627
lines changed

db.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"message": { "text": "Hello from the db!" }
3+
}

package-lock.json

Lines changed: 106 additions & 17626 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"lint": "vue-cli-service lint"
1010
},
1111
"dependencies": {
12+
"axios": "^0.21.1",
1213
"core-js": "^3.6.5",
1314
"vue": "^3.0.0",
1415
"vue-router": "^4.0.0-0",
@@ -30,6 +31,7 @@
3031
"eslint-plugin-vue": "^7.0.0-0",
3132
"prettier": "^1.19.1",
3233
"typescript": "~3.9.3",
33-
"vue-jest": "^5.0.0-0"
34+
"vue-jest": "^5.0.0-0",
35+
"flush-promises": "^1.0.2"
3436
}
3537
}

src/components/MessageDisplay.vue

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<template>
2+
<p v-if="error" data-testid="message-error">{{ error }}</p>
3+
<p v-else data-testid="message">{{ message.text }}</p>
4+
</template>
5+
6+
<script>
7+
import { getMessage } from '@/services/axios.js'
8+
9+
export default {
10+
data() {
11+
return {
12+
message: {},
13+
error: null
14+
}
15+
},
16+
async created() {
17+
try {
18+
this.message = await getMessage()
19+
} catch (err) {
20+
this.error = 'Oops! Something went wrong.'
21+
}
22+
}
23+
}
24+
</script>

src/services/axios.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import axios from 'axios'
2+
3+
export function getMessage() {
4+
return axios.get('http://localhost:3000/message').then(response => {
5+
return response.data
6+
})
7+
}

tests/unit/MessageDisplay.spec.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import MessageDisplay from '@/components/MessageDisplay'
2+
import { mount } from '@vue/test-utils'
3+
4+
describe('MessageDisplay', () => {
5+
it('Calls getMessage and displays message', async () => {
6+
// mock the API call
7+
const wrapper = mount(MessageDisplay)
8+
// wait for promise to resolve
9+
// check that call happened once
10+
// check that component displays message
11+
})
12+
13+
it('Displays an error when getMessage call fails', async () => {
14+
// mock the failed API call
15+
const wrapper = mount(MessageDisplay)
16+
// wait for promise to resolve
17+
// check that call happened once
18+
// check that component displays error
19+
})
20+
})

0 commit comments

Comments
 (0)