Skip to content

Commit

Permalink
added test case for user == null
Browse files Browse the repository at this point in the history
  • Loading branch information
syedali237 committed Oct 14, 2024
1 parent 3ff511c commit 4254609
Show file tree
Hide file tree
Showing 5 changed files with 216 additions and 95 deletions.
198 changes: 111 additions & 87 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,136 +4,160 @@ import _import from "eslint-plugin-import";
import { fixupPluginRules } from "@eslint/compat";
import globals from "globals";
import tsParser from "@typescript-eslint/parser";
import parser from "@graphql-eslint/eslint-plugin";
import path from "node:path";
import { fileURLToPath } from "node:url";
import js from "@eslint/js";
import { FlatCompat } from "@eslint/eslintrc";
import graphqlEslint from "@graphql-eslint/eslint-plugin";
import * as graphqlEslint from "@graphql-eslint/eslint-plugin";

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const compat = new FlatCompat({
baseDirectory: __dirname
baseDirectory: __dirname,
recommendedConfig: js.configs.recommended
});

export default [{
export default [
{
ignores: [
"**/.github",
"**/.vscode",
"**/build",
"**/coverage",
"**/node_modules",
"src/types",
"docs/Schema.md",
"**/.github",
"**/.vscode",
"**/build",
"**/coverage",
"**/node_modules",
"src/types",
"docs/Schema.md",
],
}, ...compat.extends("eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"), {
},
...compat.extends(
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"prettier",
),
{
plugins: {
"@typescript-eslint": typescriptEslint,
tsdoc,
"import": fixupPluginRules(_import),
"@typescript-eslint": typescriptEslint,
tsdoc,
import: fixupPluginRules(_import),
},

languageOptions: {
env: {
node: true,
parser: tsParser,
globals: {
...globals.node,
},
},
parser: tsParser,
}
,

rules: {
"no-restricted-imports": ["error", {
patterns: ["**/src/**"],
}],
"no-restricted-imports": [
"error",
{
patterns: ["**/src/**"],
},
],

"import/no-duplicates": "error",
"tsdoc/syntax": "error",
"@typescript-eslint/ban-ts-comment": "error",
"@typescript-eslint/ban-types": "error",
"@typescript-eslint/no-duplicate-enum-values": "error",
"@typescript-eslint/no-explicit-any": "warn",
"@typescript-eslint/no-non-null-asserted-optional-chain": "error",
"@typescript-eslint/no-non-null-assertion": "error",
"@typescript-eslint/no-var-requires": "error",
"import/no-duplicates": "error",
"tsdoc/syntax": "error",
"@typescript-eslint/ban-ts-comment": "error",
// "@typescript-eslint/ban-types": "error",
"@typescript-eslint/no-duplicate-enum-values": "error",
"@typescript-eslint/no-explicit-any": "warn",
"@typescript-eslint/no-non-null-asserted-optional-chain": "error",
"@typescript-eslint/no-non-null-assertion": "error",
"@typescript-eslint/no-var-requires": "error",
},
}, {
},
{
files: ["**/*.ts"],

languageOptions: {
parser: tsParser,
ecmaVersion: "latest",
sourceType: "module",
parser: tsParser,
ecmaVersion: "latest",
sourceType: "module",

parserOptions: {
project: "./tsconfig.json",
tsconfigRootDir: ".",
},
parserOptions: {
project: "./tsconfig.json",
tsconfigRootDir: ".",
},
},

rules: {
"@typescript-eslint/array-type": "error",
"@typescript-eslint/consistent-type-assertions": "error",
"@typescript-eslint/consistent-type-imports": "error",
"@typescript-eslint/explicit-function-return-type": "error",
"@typescript-eslint/array-type": "error",
"@typescript-eslint/consistent-type-assertions": "error",
"@typescript-eslint/consistent-type-imports": "error",
"@typescript-eslint/explicit-function-return-type": "error",

"@typescript-eslint/naming-convention": ["error", {
selector: "interface",
format: ["PascalCase"],
prefix: ["Interface", "TestInterface"],
}, {
selector: ["typeAlias", "typeLike", "enum"],
format: ["PascalCase"],
}, {
selector: "typeParameter",
format: ["PascalCase"],
prefix: ["T"],
}, {
selector: "variable",
format: ["camelCase", "UPPER_CASE"],
leadingUnderscore: "allow",
}, {
selector: "parameter",
format: ["camelCase"],
leadingUnderscore: "allow",
}, {
selector: "function",
format: ["camelCase"],
}, {
selector: "memberLike",
modifiers: ["private"],
format: ["camelCase"],
leadingUnderscore: "require",
}, {
selector: "variable",
modifiers: ["exported"],
format: null,
}],
"@typescript-eslint/naming-convention": [
"error",
{
selector: "interface",
format: ["PascalCase"],
prefix: ["Interface", "TestInterface"],
},
{
selector: ["typeAlias", "typeLike", "enum"],
format: ["PascalCase"],
},
{
selector: "typeParameter",
format: ["PascalCase"],
prefix: ["T"],
},
{
selector: "variable",
format: ["camelCase", "UPPER_CASE"],
leadingUnderscore: "allow",
},
{
selector: "parameter",
format: ["camelCase"],
leadingUnderscore: "allow",
},
{
selector: "function",
format: ["camelCase"],
},
{
selector: "memberLike",
modifiers: ["private"],
format: ["camelCase"],
leadingUnderscore: "require",
},
{
selector: "variable",
modifiers: ["exported"],
format: null,
},
],
},
}, {
},
{
files: ["./src/typeDefs/**/*.ts"],
processor: "@graphql-eslint/graphql",
}, {
},
{
files: ["./src/typeDefs/**/*.graphql"],

plugins: {
"@graphql-eslint": graphqlEslint,
"@graphql-eslint": graphqlEslint,
},

languageOptions: {
parser: parser,
parser: graphqlEslint.parser,
},
}, {
},
{
files: ["tests/**/*"],

rules: {
"no-restricted-imports": "off",
"no-restricted-imports": "off",
},
}, {
},
{
files: ["./src/index.ts", "./src/utilities/copyToClipboard.ts"],

rules: {
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/no-empty-function": "off",
},
}];
},
];
15 changes: 15 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-tsdoc": "^0.3.0",
"get-graphql-schema": "^2.1.2",
"globals": "^15.11.0",
"graphql-markdown": "^7.1.0",
"husky": "^9.1.5",
"lint-staged": "^15.2.10",
Expand Down
9 changes: 1 addition & 8 deletions src/resolvers/Mutation/sendMembershipRequest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,6 @@ export const sendMembershipRequest: MutationResolvers["sendMembershipRequest"] =
user: context.userId,
organization: organization._id,
});

// console.log("Membership request already exists:", membershipRequestExists);

if (membershipRequestExists) {
// Check if the request is already in the user's document
if (!user.membershipRequests.includes(membershipRequestExists._id)) {
Expand Down Expand Up @@ -154,7 +151,7 @@ export const sendMembershipRequest: MutationResolvers["sendMembershipRequest"] =
}

// Updating User
const updateResult = await User.findByIdAndUpdate(
await User.findByIdAndUpdate(
context.userId,
{
$push: {
Expand All @@ -164,9 +161,5 @@ export const sendMembershipRequest: MutationResolvers["sendMembershipRequest"] =
{ new: true, runValidators: true },
);

if (!updateResult) {
throw new Error("Failed to update user with membership request");
}

return createdMembershipRequest.toObject();
};
Loading

0 comments on commit 4254609

Please sign in to comment.