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)
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();
// ...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 { 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
},
import mongoose, { Schema } from 'mongoose';
const OptionSchema = new Schema({
name: String,
votes: {
type: Number,
default: 0,
},
})
import mongoose, { Schema } from 'mongoose';
const OptionSchema = new Schema({
name: String,
votes: {
type: Number,
default: 0,
},
})
import Poll from '../models/poll.model'
export function create(data) {
return Poll.create(data)
}
export function findAll() {
return Poll.find().sort({ createdAt: -1 })
}