29 changed files with 14507 additions and 1 deletions
-
16.babelrc
-
13.editorconfig
-
17.eslintrc.js
-
90.gitignore
-
22README.md
-
7assets/README.md
-
4assets/variables.scss
-
79components/Logo.vue
-
7components/README.md
-
21components/VuetifyLogo.vue
-
17jest.config.js
-
12jsconfig.json
-
7layouts/README.md
-
117layouts/default.vue
-
44layouts/error.vue
-
8middleware/README.md
-
86nuxt.config.js
-
13755package-lock.json
-
32package.json
-
6pages/README.md
-
92pages/index.vue
-
19pages/inspire.vue
-
7plugins/README.md
-
11static/README.md
-
BINstatic/favicon.ico
-
BINstatic/icon.png
-
BINstatic/v.png
-
10store/README.md
-
9test/Logo.spec.js
@ -0,0 +1,16 @@ |
|||
{ |
|||
"env": { |
|||
"test": { |
|||
"presets": [ |
|||
[ |
|||
"@babel/preset-env", |
|||
{ |
|||
"targets": { |
|||
"node": "current" |
|||
} |
|||
} |
|||
] |
|||
] |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,13 @@ |
|||
# editorconfig.org |
|||
root = true |
|||
|
|||
[*] |
|||
indent_style = space |
|||
indent_size = 2 |
|||
end_of_line = lf |
|||
charset = utf-8 |
|||
trim_trailing_whitespace = true |
|||
insert_final_newline = true |
|||
|
|||
[*.md] |
|||
trim_trailing_whitespace = false |
@ -0,0 +1,17 @@ |
|||
module.exports = { |
|||
root: true, |
|||
env: { |
|||
browser: true, |
|||
node: true |
|||
}, |
|||
parserOptions: { |
|||
parser: 'babel-eslint' |
|||
}, |
|||
extends: [ |
|||
'@nuxtjs', |
|||
'plugin:nuxt/recommended' |
|||
], |
|||
// add your custom rules here
|
|||
rules: { |
|||
} |
|||
} |
@ -0,0 +1,90 @@ |
|||
# Created by .ignore support plugin (hsz.mobi) |
|||
### Node template |
|||
# Logs |
|||
logs |
|||
*.log |
|||
npm-debug.log* |
|||
yarn-debug.log* |
|||
yarn-error.log* |
|||
|
|||
# Runtime data |
|||
pids |
|||
*.pid |
|||
*.seed |
|||
*.pid.lock |
|||
|
|||
# Directory for instrumented libs generated by jscoverage/JSCover |
|||
lib-cov |
|||
|
|||
# Coverage directory used by tools like istanbul |
|||
coverage |
|||
|
|||
# nyc test coverage |
|||
.nyc_output |
|||
|
|||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) |
|||
.grunt |
|||
|
|||
# Bower dependency directory (https://bower.io/) |
|||
bower_components |
|||
|
|||
# node-waf configuration |
|||
.lock-wscript |
|||
|
|||
# Compiled binary addons (https://nodejs.org/api/addons.html) |
|||
build/Release |
|||
|
|||
# Dependency directories |
|||
node_modules/ |
|||
jspm_packages/ |
|||
|
|||
# TypeScript v1 declaration files |
|||
typings/ |
|||
|
|||
# Optional npm cache directory |
|||
.npm |
|||
|
|||
# Optional eslint cache |
|||
.eslintcache |
|||
|
|||
# Optional REPL history |
|||
.node_repl_history |
|||
|
|||
# Output of 'npm pack' |
|||
*.tgz |
|||
|
|||
# Yarn Integrity file |
|||
.yarn-integrity |
|||
|
|||
# dotenv environment variables file |
|||
.env |
|||
|
|||
# parcel-bundler cache (https://parceljs.org/) |
|||
.cache |
|||
|
|||
# next.js build output |
|||
.next |
|||
|
|||
# nuxt.js build output |
|||
.nuxt |
|||
|
|||
# Nuxt generate |
|||
dist |
|||
|
|||
# vuepress build output |
|||
.vuepress/dist |
|||
|
|||
# Serverless directories |
|||
.serverless |
|||
|
|||
# IDE / Editor |
|||
.idea |
|||
|
|||
# Service worker |
|||
sw.* |
|||
|
|||
# Mac OSX |
|||
.DS_Store |
|||
|
|||
# Vim swap files |
|||
*.swp |
@ -1,2 +1,22 @@ |
|||
# Pollo |
|||
Open source serverless polling built around Firebase as a backend |
|||
|
|||
> Free polling! |
|||
|
|||
## Build Setup |
|||
|
|||
``` bash |
|||
# install dependencies |
|||
$ npm run install |
|||
|
|||
# serve with hot reload at localhost:3000 |
|||
$ npm run dev |
|||
|
|||
# build for production and launch server |
|||
$ npm run build |
|||
$ npm run start |
|||
|
|||
# generate static project |
|||
$ npm run generate |
|||
``` |
|||
|
|||
For detailed explanation on how things work, check out [Nuxt.js docs](https://nuxtjs.org). |
@ -0,0 +1,7 @@ |
|||
# ASSETS |
|||
|
|||
**This directory is not required, you can delete it if you don't want to use it.** |
|||
|
|||
This directory contains your un-compiled assets such as LESS, SASS, or JavaScript. |
|||
|
|||
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#webpacked). |
@ -0,0 +1,4 @@ |
|||
// Ref: https://github.com/nuxt-community/vuetify-module#customvariables |
|||
// |
|||
// The variables you want to modify |
|||
// $font-size-root: 20px; |
@ -0,0 +1,79 @@ |
|||
<template> |
|||
<div class="VueToNuxtLogo"> |
|||
<div class="Triangle Triangle--two" /> |
|||
<div class="Triangle Triangle--one" /> |
|||
<div class="Triangle Triangle--three" /> |
|||
<div class="Triangle Triangle--four" /> |
|||
</div> |
|||
</template> |
|||
|
|||
<style> |
|||
.VueToNuxtLogo { |
|||
display: inline-block; |
|||
animation: turn 2s linear forwards 1s; |
|||
transform: rotateX(180deg); |
|||
position: relative; |
|||
overflow: hidden; |
|||
height: 180px; |
|||
width: 245px; |
|||
} |
|||
|
|||
.Triangle { |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
width: 0; |
|||
height: 0; |
|||
} |
|||
|
|||
.Triangle--one { |
|||
border-left: 105px solid transparent; |
|||
border-right: 105px solid transparent; |
|||
border-bottom: 180px solid #41b883; |
|||
} |
|||
|
|||
.Triangle--two { |
|||
top: 30px; |
|||
left: 35px; |
|||
animation: goright 0.5s linear forwards 3.5s; |
|||
border-left: 87.5px solid transparent; |
|||
border-right: 87.5px solid transparent; |
|||
border-bottom: 150px solid #3b8070; |
|||
} |
|||
|
|||
.Triangle--three { |
|||
top: 60px; |
|||
left: 35px; |
|||
animation: goright 0.5s linear forwards 3.5s; |
|||
border-left: 70px solid transparent; |
|||
border-right: 70px solid transparent; |
|||
border-bottom: 120px solid #35495e; |
|||
} |
|||
|
|||
.Triangle--four { |
|||
top: 120px; |
|||
left: 70px; |
|||
animation: godown 0.5s linear forwards 3s; |
|||
border-left: 35px solid transparent; |
|||
border-right: 35px solid transparent; |
|||
border-bottom: 60px solid #fff; |
|||
} |
|||
|
|||
@keyframes turn { |
|||
100% { |
|||
transform: rotateX(0deg); |
|||
} |
|||
} |
|||
|
|||
@keyframes godown { |
|||
100% { |
|||
top: 180px; |
|||
} |
|||
} |
|||
|
|||
@keyframes goright { |
|||
100% { |
|||
left: 70px; |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,7 @@ |
|||
# COMPONENTS |
|||
|
|||
**This directory is not required, you can delete it if you don't want to use it.** |
|||
|
|||
The components directory contains your Vue.js Components. |
|||
|
|||
_Nuxt.js doesn't supercharge these components._ |
@ -0,0 +1,21 @@ |
|||
<template> |
|||
<img |
|||
class="VuetifyLogo" |
|||
alt="Vuetify Logo" |
|||
src="data:image/png;base64,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" |
|||
> |
|||
</template> |
|||
|
|||
<style> |
|||
.VuetifyLogo { |
|||
width: 180px; |
|||
transform: rotateY(560deg); |
|||
animation: turn 3.5s ease-out forwards 1s; |
|||
} |
|||
|
|||
@keyframes turn { |
|||
100% { |
|||
transform: rotateY(0deg); |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,17 @@ |
|||
module.exports = { |
|||
moduleNameMapper: { |
|||
'^@/(.*)$': '<rootDir>/$1', |
|||
'^~/(.*)$': '<rootDir>/$1', |
|||
'^vue$': 'vue/dist/vue.common.js' |
|||
}, |
|||
moduleFileExtensions: ['js', 'vue', 'json'], |
|||
transform: { |
|||
'^.+\\.js$': 'babel-jest', |
|||
'.*\\.(vue)$': 'vue-jest' |
|||
}, |
|||
'collectCoverage': true, |
|||
'collectCoverageFrom': [ |
|||
'<rootDir>/components/**/*.vue', |
|||
'<rootDir>/pages/**/*.vue' |
|||
] |
|||
} |
@ -0,0 +1,12 @@ |
|||
{ |
|||
"compilerOptions": { |
|||
"baseUrl": ".", |
|||
"paths": { |
|||
"~/*": ["./*"], |
|||
"@/*": ["./*"], |
|||
"~~/*": ["./*"], |
|||
"@@/*": ["./*"] |
|||
} |
|||
}, |
|||
"exclude": ["node_modules", ".nuxt", "dist"] |
|||
} |
@ -0,0 +1,7 @@ |
|||
# LAYOUTS |
|||
|
|||
**This directory is not required, you can delete it if you don't want to use it.** |
|||
|
|||
This directory contains your Application Layouts. |
|||
|
|||
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/views#layouts). |
@ -0,0 +1,117 @@ |
|||
<template> |
|||
<v-app dark> |
|||
<v-navigation-drawer |
|||
v-model="drawer" |
|||
:mini-variant="miniVariant" |
|||
:clipped="clipped" |
|||
fixed |
|||
app |
|||
> |
|||
<v-list> |
|||
<v-list-item |
|||
v-for="(item, i) in items" |
|||
:key="i" |
|||
:to="item.to" |
|||
router |
|||
exact |
|||
> |
|||
<v-list-item-action> |
|||
<v-icon>{{ item.icon }}</v-icon> |
|||
</v-list-item-action> |
|||
<v-list-item-content> |
|||
<v-list-item-title v-text="item.title" /> |
|||
</v-list-item-content> |
|||
</v-list-item> |
|||
</v-list> |
|||
</v-navigation-drawer> |
|||
<v-app-bar |
|||
:clipped-left="clipped" |
|||
fixed |
|||
app |
|||
> |
|||
<v-app-bar-nav-icon @click.stop="drawer = !drawer" /> |
|||
<v-btn |
|||
@click.stop="miniVariant = !miniVariant" |
|||
icon |
|||
> |
|||
<v-icon>mdi-{{ `chevron-${miniVariant ? 'right' : 'left'}` }}</v-icon> |
|||
</v-btn> |
|||
<v-btn |
|||
@click.stop="clipped = !clipped" |
|||
icon |
|||
> |
|||
<v-icon>mdi-application</v-icon> |
|||
</v-btn> |
|||
<v-btn |
|||
@click.stop="fixed = !fixed" |
|||
icon |
|||
> |
|||
<v-icon>mdi-minus</v-icon> |
|||
</v-btn> |
|||
<v-toolbar-title v-text="title" /> |
|||
<v-spacer /> |
|||
<v-btn |
|||
@click.stop="rightDrawer = !rightDrawer" |
|||
icon |
|||
> |
|||
<v-icon>mdi-menu</v-icon> |
|||
</v-btn> |
|||
</v-app-bar> |
|||
<v-content> |
|||
<v-container> |
|||
<nuxt /> |
|||
</v-container> |
|||
</v-content> |
|||
<v-navigation-drawer |
|||
v-model="rightDrawer" |
|||
:right="right" |
|||
temporary |
|||
fixed |
|||
> |
|||
<v-list> |
|||
<v-list-item @click.native="right = !right"> |
|||
<v-list-item-action> |
|||
<v-icon light> |
|||
mdi-repeat |
|||
</v-icon> |
|||
</v-list-item-action> |
|||
<v-list-item-title>Switch drawer (click me)</v-list-item-title> |
|||
</v-list-item> |
|||
</v-list> |
|||
</v-navigation-drawer> |
|||
<v-footer |
|||
:fixed="fixed" |
|||
app |
|||
> |
|||
<span>© 2019</span> |
|||
</v-footer> |
|||
</v-app> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data () { |
|||
return { |
|||
clipped: false, |
|||
drawer: false, |
|||
fixed: false, |
|||
items: [ |
|||
{ |
|||
icon: 'mdi-apps', |
|||
title: 'Welcome', |
|||
to: '/' |
|||
}, |
|||
{ |
|||
icon: 'mdi-chart-bubble', |
|||
title: 'Inspire', |
|||
to: '/inspire' |
|||
} |
|||
], |
|||
miniVariant: false, |
|||
right: true, |
|||
rightDrawer: false, |
|||
title: 'Vuetify.js' |
|||
} |
|||
} |
|||
} |
|||
</script> |
@ -0,0 +1,44 @@ |
|||
<template> |
|||
<v-app dark> |
|||
<h1 v-if="error.statusCode === 404"> |
|||
{{ pageNotFound }} |
|||
</h1> |
|||
<h1 v-else> |
|||
{{ otherError }} |
|||
</h1> |
|||
<NuxtLink to="/"> |
|||
Home page |
|||
</NuxtLink> |
|||
</v-app> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
layout: 'empty', |
|||
props: { |
|||
error: { |
|||
type: Object, |
|||
default: null |
|||
} |
|||
}, |
|||
head () { |
|||
const title = |
|||
this.error.statusCode === 404 ? this.pageNotFound : this.otherError |
|||
return { |
|||
title |
|||
} |
|||
}, |
|||
data () { |
|||
return { |
|||
pageNotFound: '404 Not Found', |
|||
otherError: 'An error occurred' |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
h1 { |
|||
font-size: 20px; |
|||
} |
|||
</style> |
@ -0,0 +1,8 @@ |
|||
# MIDDLEWARE |
|||
|
|||
**This directory is not required, you can delete it if you don't want to use it.** |
|||
|
|||
This directory contains your application middleware. |
|||
Middleware let you define custom functions that can be run before rendering either a page or a group of pages. |
|||
|
|||
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing#middleware). |
@ -0,0 +1,86 @@ |
|||
import colors from 'vuetify/es5/util/colors' |
|||
|
|||
export default { |
|||
mode: 'spa', |
|||
/* |
|||
** Headers of the page |
|||
*/ |
|||
head: { |
|||
title: 'Pollo', |
|||
meta: [ |
|||
{ charset: 'utf-8' }, |
|||
{ name: 'viewport', content: 'width=device-width, initial-scale=1' }, |
|||
{ hid: 'description', name: 'description', content: 'Free polling!' } |
|||
], |
|||
link: [ |
|||
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' } |
|||
] |
|||
}, |
|||
/* |
|||
** Customize the progress-bar color |
|||
*/ |
|||
loading: { color: '#fff' }, |
|||
/* |
|||
** Global CSS |
|||
*/ |
|||
css: [ |
|||
], |
|||
/* |
|||
** Plugins to load before mounting the App |
|||
*/ |
|||
plugins: [ |
|||
], |
|||
/* |
|||
** Nuxt.js dev-modules |
|||
*/ |
|||
buildModules: [ |
|||
// Doc: https://github.com/nuxt-community/eslint-module
|
|||
'@nuxtjs/eslint-module', |
|||
'@nuxtjs/vuetify' |
|||
], |
|||
/* |
|||
** Nuxt.js modules |
|||
*/ |
|||
modules: [ |
|||
// Doc: https://axios.nuxtjs.org/usage
|
|||
'@nuxtjs/axios', |
|||
'@nuxtjs/pwa' |
|||
], |
|||
/* |
|||
** Axios module configuration |
|||
** See https://axios.nuxtjs.org/options
|
|||
*/ |
|||
axios: { |
|||
}, |
|||
/* |
|||
** vuetify module configuration |
|||
** https://github.com/nuxt-community/vuetify-module
|
|||
*/ |
|||
vuetify: { |
|||
customVariables: ['~/assets/variables.scss'], |
|||
theme: { |
|||
dark: true, |
|||
themes: { |
|||
dark: { |
|||
primary: colors.blue.darken2, |
|||
accent: colors.grey.darken3, |
|||
secondary: colors.amber.darken3, |
|||
info: colors.teal.lighten1, |
|||
warning: colors.amber.base, |
|||
error: colors.deepOrange.accent4, |
|||
success: colors.green.accent3 |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
/* |
|||
** Build configuration |
|||
*/ |
|||
build: { |
|||
/* |
|||
** You can extend webpack config here |
|||
*/ |
|||
extend (config, ctx) { |
|||
} |
|||
} |
|||
} |
13755
package-lock.json
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,32 @@ |
|||
{ |
|||
"name": "Pollo", |
|||
"version": "1.0.0", |
|||
"description": "Free polling!", |
|||
"author": "Atridad Lahiji", |
|||
"private": true, |
|||
"scripts": { |
|||
"dev": "nuxt", |
|||
"build": "nuxt build", |
|||
"start": "nuxt start", |
|||
"generate": "nuxt generate", |
|||
"lint": "eslint --ext .js,.vue --ignore-path .gitignore .", |
|||
"test": "jest" |
|||
}, |
|||
"dependencies": { |
|||
"nuxt": "^2.0.0", |
|||
"@nuxtjs/axios": "^5.3.6", |
|||
"@nuxtjs/pwa": "^3.0.0-0" |
|||
}, |
|||
"devDependencies": { |
|||
"@nuxtjs/vuetify": "^1.0.0", |
|||
"@nuxtjs/eslint-config": "^1.0.1", |
|||
"@nuxtjs/eslint-module": "^1.0.0", |
|||
"babel-eslint": "^10.0.1", |
|||
"eslint": "^6.1.0", |
|||
"eslint-plugin-nuxt": ">=0.4.2", |
|||
"@vue/test-utils": "^1.0.0-beta.27", |
|||
"babel-jest": "^24.1.0", |
|||
"jest": "^24.1.0", |
|||
"vue-jest": "^4.0.0-0" |
|||
} |
|||
} |
@ -0,0 +1,6 @@ |
|||
# PAGES |
|||
|
|||
This directory contains your Application Views and Routes. |
|||
The framework reads all the `*.vue` files inside this directory and creates the router of your application. |
|||
|
|||
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing). |
@ -0,0 +1,92 @@ |
|||
<template> |
|||
<v-layout |
|||
column |
|||
justify-center |
|||
align-center |
|||
> |
|||
<v-flex |
|||
xs12 |
|||
sm8 |
|||
md6 |
|||
> |
|||
<div class="text-center"> |
|||
<logo /> |
|||
<vuetify-logo /> |
|||
</div> |
|||
<v-card> |
|||
<v-card-title class="headline"> |
|||
Welcome to the Vuetify + Nuxt.js template |
|||
</v-card-title> |
|||
<v-card-text> |
|||
<p>Vuetify is a progressive Material Design component framework for Vue.js. It was designed to empower developers to create amazing applications.</p> |
|||
<p> |
|||
For more information on Vuetify, check out the <a |
|||
href="https://vuetifyjs.com" |
|||
target="_blank" |
|||
> |
|||
documentation |
|||
</a>. |
|||
</p> |
|||
<p> |
|||
If you have questions, please join the official <a |
|||
href="https://chat.vuetifyjs.com/" |
|||
target="_blank" |
|||
title="chat" |
|||
> |
|||
discord |
|||
</a>. |
|||
</p> |
|||
<p> |
|||
Find a bug? Report it on the github <a |
|||
href="https://github.com/vuetifyjs/vuetify/issues" |
|||
target="_blank" |
|||
title="contribute" |
|||
> |
|||
issue board |
|||
</a>. |
|||
</p> |
|||
<p>Thank you for developing with Vuetify and I look forward to bringing more exciting features in the future.</p> |
|||
<div class="text-xs-right"> |
|||
<em><small>— John Leider</small></em> |
|||
</div> |
|||
<hr class="my-3"> |
|||
<a |
|||
href="https://nuxtjs.org/" |
|||
target="_blank" |
|||
> |
|||
Nuxt Documentation |
|||
</a> |
|||
<br> |
|||
<a |
|||
href="https://github.com/nuxt/nuxt.js" |
|||
target="_blank" |
|||
> |
|||
Nuxt GitHub |
|||
</a> |
|||
</v-card-text> |
|||
<v-card-actions> |
|||
<v-spacer /> |
|||
<v-btn |
|||
color="primary" |
|||
nuxt |
|||
to="/inspire" |
|||
> |
|||
Continue |
|||
</v-btn> |
|||
</v-card-actions> |
|||
</v-card> |
|||
</v-flex> |
|||
</v-layout> |
|||
</template> |
|||
|
|||
<script> |
|||
import Logo from '~/components/Logo.vue' |
|||
import VuetifyLogo from '~/components/VuetifyLogo.vue' |
|||
|
|||
export default { |
|||
components: { |
|||
Logo, |
|||
VuetifyLogo |
|||
} |
|||
} |
|||
</script> |
@ -0,0 +1,19 @@ |
|||
<template> |
|||
<v-layout> |
|||
<v-flex class="text-center"> |
|||
<img |
|||
src="/v.png" |
|||
alt="Vuetify.js" |
|||
class="mb-5" |
|||
> |
|||
<blockquote class="blockquote"> |
|||
“First, solve the problem. Then, write the code.” |
|||
<footer> |
|||
<small> |
|||
<em>—John Johnson</em> |
|||
</small> |
|||
</footer> |
|||
</blockquote> |
|||
</v-flex> |
|||
</v-layout> |
|||
</template> |
@ -0,0 +1,7 @@ |
|||
# PLUGINS |
|||
|
|||
**This directory is not required, you can delete it if you don't want to use it.** |
|||
|
|||
This directory contains Javascript plugins that you want to run before mounting the root Vue.js application. |
|||
|
|||
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/plugins). |
@ -0,0 +1,11 @@ |
|||
# STATIC |
|||
|
|||
**This directory is not required, you can delete it if you don't want to use it.** |
|||
|
|||
This directory contains your static files. |
|||
Each file inside this directory is mapped to `/`. |
|||
Thus you'd want to delete this README.md before deploying to production. |
|||
|
|||
Example: `/static/robots.txt` is mapped as `/robots.txt`. |
|||
|
|||
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#static). |
After Width: 32 | Height: 32 | Size: 1.4 KiB |
After Width: 512 | Height: 512 | Size: 12 KiB |
After Width: 120 | Height: 120 | Size: 5.5 KiB |
@ -0,0 +1,10 @@ |
|||
# STORE |
|||
|
|||
**This directory is not required, you can delete it if you don't want to use it.** |
|||
|
|||
This directory contains your Vuex Store files. |
|||
Vuex Store option is implemented in the Nuxt.js framework. |
|||
|
|||
Creating a file in this directory automatically activates the option in the framework. |
|||
|
|||
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/vuex-store). |
@ -0,0 +1,9 @@ |
|||
import { mount } from '@vue/test-utils' |
|||
import Logo from '@/components/Logo.vue' |
|||
|
|||
describe('Logo', () => { |
|||
test('is a Vue instance', () => { |
|||
const wrapper = mount(Logo) |
|||
expect(wrapper.isVueInstance()).toBeTruthy() |
|||
}) |
|||
}) |
Reference in new issue