Skip to content

Instantly share code, notes, and snippets.

View LazyFatArrow's full-sized avatar

Amenallah Hsoumi LazyFatArrow

View GitHub Profile
@LazyFatArrow
LazyFatArrow / vitest-typescript-useRouter.ts
Created February 12, 2023 12:33
Mock vue router userRouter with Vitest and Typescript
import { shallowMount } from '@vue/test-utils'
import { beforeEach, describe, test, vi, expect } from 'vitest'
import { useRouter } from 'vue-router'
import { RouteNames, router } from '../../router/router'
import Home from './Home.vue'
vi.mock('vue-router')
describe('Home', () => {
vi.mocked(useRouter).mockReturnValue({
import Vue from 'vue'
import App from './App.vue'
import VueCompositionApi from '@vue/composition-api'
Vue.config.productionTip = false
Vue.use(VueCompositionApi)
new Vue({
render: h => h(App)
// ...imports
import * as express from 'express';
import { join } from 'path';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
// serve static assets from the client/dist folder, change this to the correct path for your project
app.use(express.static(join(process.cwd(), '../client/dist/')));
// ...imports
import { MiddlewareConsumer, Module, NestModule, RequestMethod } from '@nestjs/common';
import { ServeHTMLMiddleware } from './app.middleware';
@Module({
// ...module options
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer
import { Injectable, NestMiddleware } from '@nestjs/common';
import { Request, Response } from 'express';
import { join } from 'path';
@Injectable()
export class ServeHTMLMiddleware implements NestMiddleware {
use(req: Request, res: Response, next: () => void) {
// here you can check if the requested path is your api endpoint, if that's the case then we have to return next()
if (req.path.includes('graphql')) {
return next();
import { Controller, Get, Res, Next, Req } from '@nestjs/common';
import { join } from 'path';
import { Response, NextFunction, Request } from 'express';
@Controller()
export class AppController {
@Get('*')
get(
@Res() res: Response,
@Next() next: NextFunction,
import pollResolvers from './poll.resolvers'
export default {
Query: {
...pollResolvers.queries
},
Mutation: {
...pollResolvers.mutations
},
<template>
<!-- ...html -->
</template>
<script>
// ... code
import { OPTION_VOTED, POLL_CREATED } from '@/gql/subscriptions/poll.subscriptions'
// ... code
// ... code
export const POLL_CREATED = gql`
subscription PollCreated {
pollCreated {
id
title
description
options {
id
// ... code
export const CREATE_POLL = gql`
mutation createPoll($poll: CreatePollInput!) {
createPoll(poll: $poll) {
id
}
}
`;