From 1dde62d57b80904bcfe93d2367da1ab46e0756a1 Mon Sep 17 00:00:00 2001 From: Enubia Date: Fri, 11 Jun 2021 10:19:38 +0200 Subject: [PATCH] fixed a ts-jest warning/error in of of the integration tests also fixed eslint to properly use prettier additionally added the new husky pre-commit changes that where done in v6.0.0 --- .eslintrc.js | 4 ++-- .husky/.gitignore | 1 + .husky/pre-commit | 4 ++++ package.json | 2 +- src/engine/schema/Schema.ts | 4 ++-- test/db.ts | 28 +++++++++++++++++----------- test/loadData.ts | 4 ++-- test/models/BoardMemberView.ts | 4 ++-- test/testingData.ts | 17 ++++++++++++----- 9 files changed, 43 insertions(+), 25 deletions(-) create mode 100644 .husky/.gitignore create mode 100755 .husky/pre-commit diff --git a/.eslintrc.js b/.eslintrc.js index bbe33cf5..94e31ad7 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,13 +1,13 @@ module.exports = { parser: '@typescript-eslint/parser', + plugins: ['prettier', '@typescript-eslint', 'import'], extends: [ 'plugin:@typescript-eslint/recommended', - 'prettier/@typescript-eslint', 'eslint:recommended', 'plugin:import/errors', 'plugin:import/warnings', + 'plugin:prettier/recommended', ], - plugins: ['@typescript-eslint', 'import'], parserOptions: { ecmaVersion: 2018, sourceType: 'module', diff --git a/.husky/.gitignore b/.husky/.gitignore new file mode 100644 index 00000000..31354ec1 --- /dev/null +++ b/.husky/.gitignore @@ -0,0 +1 @@ +_ diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 00000000..d2ae35e8 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +yarn lint-staged diff --git a/package.json b/package.json index 2493d824..0e894d92 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "test-integration": "TZ=UTC jest --runInBand", "test-integration-watch": "TZ=UTC jest --runInBand --watch", "lint": "tsc --noEmit && eslint '*/**/*.{js,ts,tsx}'", - "lint-fix": "tsc --noEmit && eslint '*/**/*.{js,ts,tsx}' --quiet --fix", + "lint-fix": "tsc --noEmit && eslint '*/**/*.{js,ts,tsx}' --fix", "lint-staged": "lint-staged", "coverage": "cross-env NODE_ENV=test TZ=UTC jest --runInBand --coverage", "coverage-ci": "npm run coverage && cat ./coverage/lcov.info | codecov", diff --git a/src/engine/schema/Schema.ts b/src/engine/schema/Schema.ts index 97c5799e..f22df508 100644 --- a/src/engine/schema/Schema.ts +++ b/src/engine/schema/Schema.ts @@ -228,8 +228,8 @@ export class Schema { entityDefaultPermissions.subscriptions = entityDefaultPermissions.subscriptions || ({} as Permission); - const defaultPermissions = this.permissionsMap.entities - ._defaultPermissions; + const defaultPermissions = + this.permissionsMap.entities._defaultPermissions; defaultPermissions.mutations = defaultPermissions.mutations || {}; defaultPermissions.subscriptions = defaultPermissions.subscriptions || {}; diff --git a/test/db.ts b/test/db.ts index 59e8e506..467c477e 100644 --- a/test/db.ts +++ b/test/db.ts @@ -1,11 +1,18 @@ import { connectStorage, disconnectStorage, -} from '../src/storage-connector/generator'; + Schema, + Configuration, + Entity, + generateGraphQLSchema, + ProtocolGraphQLConfiguration, + Context, + ProtocolGraphQL, +} from '../src'; import { StorageTypePostgres } from '../src/storage-connector/StorageTypePostgres'; import StoragePostgresConfiguration from '../src/storage-connector/StoragePostgresConfiguration'; import { writeFileSync } from 'fs'; -import { Schema, Configuration, Entity } from '../src'; + import { Profile } from './models/Profile'; import { Message } from './models/Message'; import { BoardMember } from './models/BoardMember'; @@ -13,21 +20,20 @@ import { Book } from './models/Book'; import { DataTypeTester } from './models/DataTypeTester'; import { BoardMemberView } from './models/BoardMemberView'; import { Connection } from 'typeorm'; -import { generateGraphQLSchema } from '../src/graphqlProtocol/generator'; + import { ExecutionResult, graphql, + GraphQLResolveInfo, GraphQLSchema, printSchema, Source, } from 'graphql'; -import Maybe from 'graphql/tsutils/Maybe'; -import { ExecutionResultDataDefault } from 'graphql/execution/execute'; -import { ProtocolGraphQLConfiguration } from '../src/graphqlProtocol/ProtocolGraphQLConfiguration'; + import { formatGraphQLError } from '../src/graphqlProtocol/util'; -import { Context } from '../src/engine/context/Context'; + import { getMutationResolver } from '../src/graphqlProtocol/resolver'; -import { ProtocolGraphQL } from '../src/graphqlProtocol/ProtocolGraphQL'; + import { Website } from './models/Website'; import { WebsiteTag } from './models/WebsiteTag'; @@ -88,8 +94,8 @@ export const initGraphQLSchema = (): void => { export async function testGraphql( query: Source | string, context?: unknown, - payload?: Maybe<{ [key: string]: unknown }>, -): Promise> { + payload?: { [key: string]: unknown }, +): Promise { const result = await graphql( graphqlSchema, query, @@ -133,7 +139,7 @@ export const mutate = async ( {}, { input: { [typeName]: payload } }, context, - {}, + {} as GraphQLResolveInfo, ); if (entityMutation.isTypeDelete) { diff --git a/test/loadData.ts b/test/loadData.ts index f18ec7ec..971a9a0f 100644 --- a/test/loadData.ts +++ b/test/loadData.ts @@ -2,7 +2,7 @@ import { readRows } from './testingData'; import { Board } from './models/Board'; import { findOneByValue, testGraphql } from './db'; import { asAdmin, asUser } from './testUtils'; -import { asyncForEach } from '../src/engine/util'; +import { asyncForEach } from '../src'; import { formatGraphQLError, gql } from '../src/graphqlProtocol/util'; const stopOnError = (result) => { @@ -12,7 +12,7 @@ const stopOnError = (result) => { } }; -export const loadData = async () => { +export const loadData = async (): Promise => { const profiles = readRows('profiles'); await asyncForEach( diff --git a/test/models/BoardMemberView.ts b/test/models/BoardMemberView.ts index b290fcb5..d55eb0bd 100644 --- a/test/models/BoardMemberView.ts +++ b/test/models/BoardMemberView.ts @@ -22,10 +22,10 @@ export const BoardMemberView = new ViewEntity({ name: 'BoardMemberView', description: 'Custom view of board members', - permissions: () => ({ + permissions: { read: readPermissions(), find: readPermissions(), - }), + }, viewExpression: ` SELECT diff --git a/test/testingData.ts b/test/testingData.ts index d0008a44..9a32e899 100644 --- a/test/testingData.ts +++ b/test/testingData.ts @@ -1,10 +1,10 @@ import fs from 'fs'; -const buildArray = (length, value = 1) => { +const buildArray = (length: number, value = 1) => { return new Array(length).fill(value); }; -export const readRows = (fileName) => { +export const readRows = (fileName: string): string[][] => { const filePath = `${__dirname}/data/${fileName}.csv`; const content = fs.readFileSync(filePath, 'utf8'); return content @@ -18,13 +18,20 @@ export const readRows = (fileName) => { }); }; -export const writeTestDataFile = (fileName, content) => { +export const writeTestDataFile = ( + fileName: string, + content: string[], +): void => { const filePath = `${__dirname}/data/${fileName}.csv`; fs.writeFileSync(filePath, `${content.join('\n')}\n`, 'utf8'); }; -export const generateRows = (count, fileName, generator) => { - const content = buildArray(count).map((item, idx) => { +export const generateRows = ( + count: number, + fileName: string, + generator: (arg: number) => any[], +): void => { + const content = buildArray(count).map((_item, idx) => { return generator(idx).join(','); });