mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
Revert "do not allow user to edit admin contributions"
This reverts commit 43e2f5fbc839921b5b0fe3deadc85c15baeb104f.
This commit is contained in:
parent
769e36bea5
commit
6dff07a7ba
@ -9,6 +9,7 @@ import { TransactionLink as dbTransactionLink } from '@entity/TransactionLink'
|
|||||||
import { GdtResolver } from './GdtResolver'
|
import { GdtResolver } from './GdtResolver'
|
||||||
import { getLastTransaction } from './util/getLastTransaction'
|
import { getLastTransaction } from './util/getLastTransaction'
|
||||||
import { TransactionLinkRepository } from '@repository/TransactionLink'
|
import { TransactionLinkRepository } from '@repository/TransactionLink'
|
||||||
|
|
||||||
import { Balance } from '@model/Balance'
|
import { Balance } from '@model/Balance'
|
||||||
|
|
||||||
import { backendLogger as logger } from '@/server/logger'
|
import { backendLogger as logger } from '@/server/logger'
|
||||||
|
|||||||
@ -6,8 +6,8 @@
|
|||||||
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
||||||
|
|
||||||
import { Community as DbCommunity } from '@entity/Community'
|
import { Community as DbCommunity } from '@entity/Community'
|
||||||
import { testEnvironment } from '@test/helpers'
|
|
||||||
import { getCommunities } from '@/seeds/graphql/queries'
|
import { getCommunities } from '@/seeds/graphql/queries'
|
||||||
|
import { testEnvironment } from '@test/helpers'
|
||||||
|
|
||||||
let query: any
|
let query: any
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,6 @@ import { GraphQLError } from 'graphql'
|
|||||||
import { ContributionLink as DbContributionLink } from '@entity/ContributionLink'
|
import { ContributionLink as DbContributionLink } from '@entity/ContributionLink'
|
||||||
import { Event as DbEvent } from '@entity/Event'
|
import { Event as DbEvent } from '@entity/Event'
|
||||||
import { logger } from '@test/testSetup'
|
import { logger } from '@test/testSetup'
|
||||||
import { cleanDB, testEnvironment, resetToken } from '@test/helpers'
|
|
||||||
import {
|
import {
|
||||||
login,
|
login,
|
||||||
createContributionLink,
|
createContributionLink,
|
||||||
@ -17,6 +16,7 @@ import {
|
|||||||
updateContributionLink,
|
updateContributionLink,
|
||||||
} from '@/seeds/graphql/mutations'
|
} from '@/seeds/graphql/mutations'
|
||||||
import { listContributionLinks } from '@/seeds/graphql/queries'
|
import { listContributionLinks } from '@/seeds/graphql/queries'
|
||||||
|
import { cleanDB, testEnvironment, resetToken } from '@test/helpers'
|
||||||
import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg'
|
import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg'
|
||||||
import { peterLustig } from '@/seeds/users/peter-lustig'
|
import { peterLustig } from '@/seeds/users/peter-lustig'
|
||||||
import { userFactory } from '@/seeds/factory/user'
|
import { userFactory } from '@/seeds/factory/user'
|
||||||
|
|||||||
@ -3,20 +3,20 @@ import { Resolver, Args, Arg, Authorized, Mutation, Query, Int, Ctx } from 'type
|
|||||||
import { MoreThan, IsNull } from '@dbTools/typeorm'
|
import { MoreThan, IsNull } from '@dbTools/typeorm'
|
||||||
|
|
||||||
import { ContributionLink as DbContributionLink } from '@entity/ContributionLink'
|
import { ContributionLink as DbContributionLink } from '@entity/ContributionLink'
|
||||||
import { transactionLinkCode as contributionLinkCode } from './TransactionLinkResolver'
|
|
||||||
import { isStartEndDateValid } from './util/creations'
|
|
||||||
import {
|
import {
|
||||||
CONTRIBUTIONLINK_NAME_MAX_CHARS,
|
CONTRIBUTIONLINK_NAME_MAX_CHARS,
|
||||||
CONTRIBUTIONLINK_NAME_MIN_CHARS,
|
CONTRIBUTIONLINK_NAME_MIN_CHARS,
|
||||||
MEMO_MAX_CHARS,
|
MEMO_MAX_CHARS,
|
||||||
MEMO_MIN_CHARS,
|
MEMO_MIN_CHARS,
|
||||||
} from './const/const'
|
} from './const/const'
|
||||||
|
import { isStartEndDateValid } from './util/creations'
|
||||||
|
import { transactionLinkCode as contributionLinkCode } from './TransactionLinkResolver'
|
||||||
import { ContributionLinkList } from '@model/ContributionLinkList'
|
import { ContributionLinkList } from '@model/ContributionLinkList'
|
||||||
import { ContributionLink } from '@model/ContributionLink'
|
import { ContributionLink } from '@model/ContributionLink'
|
||||||
import ContributionLinkArgs from '@arg/ContributionLinkArgs'
|
import ContributionLinkArgs from '@arg/ContributionLinkArgs'
|
||||||
|
import { RIGHTS } from '@/auth/RIGHTS'
|
||||||
import { Order } from '@enum/Order'
|
import { Order } from '@enum/Order'
|
||||||
import Paginated from '@arg/Paginated'
|
import Paginated from '@arg/Paginated'
|
||||||
import { RIGHTS } from '@/auth/RIGHTS'
|
|
||||||
|
|
||||||
// TODO: this is a strange construct
|
// TODO: this is a strange construct
|
||||||
import LogError from '@/server/LogError'
|
import LogError from '@/server/LogError'
|
||||||
|
|||||||
@ -13,18 +13,6 @@ import { Transaction as DbTransaction } from '@entity/Transaction'
|
|||||||
import { User } from '@entity/User'
|
import { User } from '@entity/User'
|
||||||
import { UserInputError } from 'apollo-server-express'
|
import { UserInputError } from 'apollo-server-express'
|
||||||
import { Event as DbEvent } from '@entity/Event'
|
import { Event as DbEvent } from '@entity/Event'
|
||||||
import {
|
|
||||||
cleanDB,
|
|
||||||
resetToken,
|
|
||||||
testEnvironment,
|
|
||||||
contributionDateFormatter,
|
|
||||||
resetEntity,
|
|
||||||
} from '@test/helpers'
|
|
||||||
import { logger, i18n as localization } from '@test/testSetup'
|
|
||||||
import { UnconfirmedContribution } from '@model/UnconfirmedContribution'
|
|
||||||
import { ContributionListResult } from '@model/Contribution'
|
|
||||||
import { ContributionStatus } from '@enum/ContributionStatus'
|
|
||||||
import { Order } from '@enum/Order'
|
|
||||||
import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg'
|
import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg'
|
||||||
import { bobBaumeister } from '@/seeds/users/bob-baumeister'
|
import { bobBaumeister } from '@/seeds/users/bob-baumeister'
|
||||||
import { stephenHawking } from '@/seeds/users/stephen-hawking'
|
import { stephenHawking } from '@/seeds/users/stephen-hawking'
|
||||||
@ -52,12 +40,24 @@ import {
|
|||||||
sendContributionDeletedEmail,
|
sendContributionDeletedEmail,
|
||||||
sendContributionDeniedEmail,
|
sendContributionDeniedEmail,
|
||||||
} from '@/emails/sendEmailVariants'
|
} from '@/emails/sendEmailVariants'
|
||||||
|
import {
|
||||||
|
cleanDB,
|
||||||
|
resetToken,
|
||||||
|
testEnvironment,
|
||||||
|
contributionDateFormatter,
|
||||||
|
resetEntity,
|
||||||
|
} from '@test/helpers'
|
||||||
import { userFactory } from '@/seeds/factory/user'
|
import { userFactory } from '@/seeds/factory/user'
|
||||||
import { creationFactory } from '@/seeds/factory/creation'
|
import { creationFactory } from '@/seeds/factory/creation'
|
||||||
import { creations } from '@/seeds/creation/index'
|
import { creations } from '@/seeds/creation/index'
|
||||||
import { peterLustig } from '@/seeds/users/peter-lustig'
|
import { peterLustig } from '@/seeds/users/peter-lustig'
|
||||||
import { EventType } from '@/event/Event'
|
import { EventType } from '@/event/Event'
|
||||||
|
import { logger, i18n as localization } from '@test/testSetup'
|
||||||
import { raeuberHotzenplotz } from '@/seeds/users/raeuber-hotzenplotz'
|
import { raeuberHotzenplotz } from '@/seeds/users/raeuber-hotzenplotz'
|
||||||
|
import { UnconfirmedContribution } from '@model/UnconfirmedContribution'
|
||||||
|
import { ContributionListResult } from '@model/Contribution'
|
||||||
|
import { ContributionStatus } from '@enum/ContributionStatus'
|
||||||
|
import { Order } from '@enum/Order'
|
||||||
|
|
||||||
jest.mock('@/emails/sendEmailVariants')
|
jest.mock('@/emails/sendEmailVariants')
|
||||||
|
|
||||||
@ -2040,50 +2040,6 @@ describe('ContributionResolver', () => {
|
|||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('user tries to update admin contribution', () => {
|
|
||||||
beforeAll(async () => {
|
|
||||||
await mutate({
|
|
||||||
mutation: login,
|
|
||||||
variables: { email: 'bibi@bloxberg.de', password: 'Aa12345_' },
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
afterAll(async () => {
|
|
||||||
await mutate({
|
|
||||||
mutation: login,
|
|
||||||
variables: { email: 'peter@lustig.de', password: 'Aa12345_' },
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
it('logs and throws "Cannot update contribution of moderator" error', async () => {
|
|
||||||
jest.clearAllMocks()
|
|
||||||
const adminContribution = await Contribution.findOne({
|
|
||||||
where: {
|
|
||||||
moderatorId: admin.id,
|
|
||||||
userId: bibi.id,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
await expect(
|
|
||||||
mutate({
|
|
||||||
mutation: updateContribution,
|
|
||||||
variables: {
|
|
||||||
contributionId: (adminContribution && adminContribution.id) || -1,
|
|
||||||
amount: 100.0,
|
|
||||||
memo: 'Test Test Test',
|
|
||||||
creationDate: new Date().toString(),
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
).resolves.toMatchObject({
|
|
||||||
errors: [new GraphQLError('Cannot update contribution of moderator')],
|
|
||||||
})
|
|
||||||
expect(logger.error).toBeCalledWith(
|
|
||||||
'Cannot update contribution of moderator',
|
|
||||||
expect.any(Object),
|
|
||||||
bibi.id,
|
|
||||||
)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('second creation surpasses the available amount ', () => {
|
describe('second creation surpasses the available amount ', () => {
|
||||||
|
|||||||
@ -9,6 +9,9 @@ import { UserContact } from '@entity/UserContact'
|
|||||||
import { User as DbUser } from '@entity/User'
|
import { User as DbUser } from '@entity/User'
|
||||||
import { Transaction as DbTransaction } from '@entity/Transaction'
|
import { Transaction as DbTransaction } from '@entity/Transaction'
|
||||||
|
|
||||||
|
import { MEMO_MAX_CHARS, MEMO_MIN_CHARS } from './const/const'
|
||||||
|
import { getLastTransaction } from './util/getLastTransaction'
|
||||||
|
import { findContributions } from './util/findContributions'
|
||||||
import {
|
import {
|
||||||
getUserCreation,
|
getUserCreation,
|
||||||
validateContribution,
|
validateContribution,
|
||||||
@ -16,9 +19,6 @@ import {
|
|||||||
isValidDateString,
|
isValidDateString,
|
||||||
getOpenCreations,
|
getOpenCreations,
|
||||||
} from './util/creations'
|
} from './util/creations'
|
||||||
import { findContributions } from './util/findContributions'
|
|
||||||
import { getLastTransaction } from './util/getLastTransaction'
|
|
||||||
import { MEMO_MAX_CHARS, MEMO_MIN_CHARS } from './const/const'
|
|
||||||
import { AdminUpdateContribution } from '@model/AdminUpdateContribution'
|
import { AdminUpdateContribution } from '@model/AdminUpdateContribution'
|
||||||
import { Contribution, ContributionListResult } from '@model/Contribution'
|
import { Contribution, ContributionListResult } from '@model/Contribution'
|
||||||
import { Decay } from '@model/Decay'
|
import { Decay } from '@model/Decay'
|
||||||
@ -201,9 +201,6 @@ export class ContributionResolver {
|
|||||||
user.id,
|
user.id,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
if (contributionToUpdate.moderatorId) {
|
|
||||||
throw new LogError('Cannot update contribution of moderator', contributionToUpdate, user.id)
|
|
||||||
}
|
|
||||||
if (
|
if (
|
||||||
contributionToUpdate.contributionStatus !== ContributionStatus.IN_PROGRESS &&
|
contributionToUpdate.contributionStatus !== ContributionStatus.IN_PROGRESS &&
|
||||||
contributionToUpdate.contributionStatus !== ContributionStatus.PENDING
|
contributionToUpdate.contributionStatus !== ContributionStatus.PENDING
|
||||||
|
|||||||
@ -14,11 +14,9 @@ import { Transaction } from '@entity/Transaction'
|
|||||||
import { Event as DbEvent } from '@entity/Event'
|
import { Event as DbEvent } from '@entity/Event'
|
||||||
import { UserContact } from '@entity/UserContact'
|
import { UserContact } from '@entity/UserContact'
|
||||||
import { transactionLinkCode } from './TransactionLinkResolver'
|
import { transactionLinkCode } from './TransactionLinkResolver'
|
||||||
import { cleanDB, testEnvironment, resetToken, resetEntity } from '@test/helpers'
|
|
||||||
import { UnconfirmedContribution } from '@model/UnconfirmedContribution'
|
|
||||||
import { logger } from '@test/testSetup'
|
|
||||||
import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg'
|
import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg'
|
||||||
import { peterLustig } from '@/seeds/users/peter-lustig'
|
import { peterLustig } from '@/seeds/users/peter-lustig'
|
||||||
|
import { cleanDB, testEnvironment, resetToken, resetEntity } from '@test/helpers'
|
||||||
import { creationFactory } from '@/seeds/factory/creation'
|
import { creationFactory } from '@/seeds/factory/creation'
|
||||||
import { creations } from '@/seeds/creation/index'
|
import { creations } from '@/seeds/creation/index'
|
||||||
import { userFactory } from '@/seeds/factory/user'
|
import { userFactory } from '@/seeds/factory/user'
|
||||||
@ -35,7 +33,9 @@ import {
|
|||||||
confirmContribution,
|
confirmContribution,
|
||||||
} from '@/seeds/graphql/mutations'
|
} from '@/seeds/graphql/mutations'
|
||||||
import { listTransactionLinksAdmin } from '@/seeds/graphql/queries'
|
import { listTransactionLinksAdmin } from '@/seeds/graphql/queries'
|
||||||
|
import { UnconfirmedContribution } from '@model/UnconfirmedContribution'
|
||||||
import { TRANSACTIONS_LOCK } from '@/util/TRANSACTIONS_LOCK'
|
import { TRANSACTIONS_LOCK } from '@/util/TRANSACTIONS_LOCK'
|
||||||
|
import { logger } from '@test/testSetup'
|
||||||
import { EventType } from '@/event/Event'
|
import { EventType } from '@/event/Event'
|
||||||
|
|
||||||
// mock semaphore to allow use fake timers
|
// mock semaphore to allow use fake timers
|
||||||
|
|||||||
@ -10,10 +10,10 @@ import { Contribution as DbContribution } from '@entity/Contribution'
|
|||||||
import { ContributionLink as DbContributionLink } from '@entity/ContributionLink'
|
import { ContributionLink as DbContributionLink } from '@entity/ContributionLink'
|
||||||
|
|
||||||
import { Resolver, Args, Arg, Authorized, Ctx, Mutation, Query, Int } from 'type-graphql'
|
import { Resolver, Args, Arg, Authorized, Ctx, Mutation, Query, Int } from 'type-graphql'
|
||||||
import transactionLinkList from './util/transactionLinkList'
|
|
||||||
import { getLastTransaction } from './util/getLastTransaction'
|
|
||||||
import { executeTransaction } from './TransactionResolver'
|
|
||||||
import { getUserCreation, validateContribution } from './util/creations'
|
import { getUserCreation, validateContribution } from './util/creations'
|
||||||
|
import { executeTransaction } from './TransactionResolver'
|
||||||
|
import { getLastTransaction } from './util/getLastTransaction'
|
||||||
|
import transactionLinkList from './util/transactionLinkList'
|
||||||
import { User } from '@model/User'
|
import { User } from '@model/User'
|
||||||
import { ContributionLink } from '@model/ContributionLink'
|
import { ContributionLink } from '@model/ContributionLink'
|
||||||
import { Decay } from '@model/Decay'
|
import { Decay } from '@model/Decay'
|
||||||
@ -25,12 +25,12 @@ import { ContributionCycleType } from '@enum/ContributionCycleType'
|
|||||||
import TransactionLinkArgs from '@arg/TransactionLinkArgs'
|
import TransactionLinkArgs from '@arg/TransactionLinkArgs'
|
||||||
import Paginated from '@arg/Paginated'
|
import Paginated from '@arg/Paginated'
|
||||||
import TransactionLinkFilters from '@arg/TransactionLinkFilters'
|
import TransactionLinkFilters from '@arg/TransactionLinkFilters'
|
||||||
import QueryLinkResult from '@union/QueryLinkResult'
|
|
||||||
import { backendLogger as logger } from '@/server/logger'
|
import { backendLogger as logger } from '@/server/logger'
|
||||||
import { Context, getUser, getClientTimezoneOffset } from '@/server/context'
|
import { Context, getUser, getClientTimezoneOffset } from '@/server/context'
|
||||||
import { calculateBalance } from '@/util/validate'
|
import { calculateBalance } from '@/util/validate'
|
||||||
import { RIGHTS } from '@/auth/RIGHTS'
|
import { RIGHTS } from '@/auth/RIGHTS'
|
||||||
import { calculateDecay } from '@/util/decay'
|
import { calculateDecay } from '@/util/decay'
|
||||||
|
import QueryLinkResult from '@union/QueryLinkResult'
|
||||||
import { TRANSACTIONS_LOCK } from '@/util/TRANSACTIONS_LOCK'
|
import { TRANSACTIONS_LOCK } from '@/util/TRANSACTIONS_LOCK'
|
||||||
import LogError from '@/server/LogError'
|
import LogError from '@/server/LogError'
|
||||||
import {
|
import {
|
||||||
|
|||||||
@ -11,8 +11,6 @@ import { User } from '@entity/User'
|
|||||||
import { GraphQLError } from 'graphql'
|
import { GraphQLError } from 'graphql'
|
||||||
import { Event as DbEvent } from '@entity/Event'
|
import { Event as DbEvent } from '@entity/Event'
|
||||||
import { findUserByEmail } from './UserResolver'
|
import { findUserByEmail } from './UserResolver'
|
||||||
import { cleanDB, testEnvironment } from '@test/helpers'
|
|
||||||
import { logger } from '@test/testSetup'
|
|
||||||
import { EventType } from '@/event/Event'
|
import { EventType } from '@/event/Event'
|
||||||
import { userFactory } from '@/seeds/factory/user'
|
import { userFactory } from '@/seeds/factory/user'
|
||||||
import {
|
import {
|
||||||
@ -25,6 +23,8 @@ import { bobBaumeister } from '@/seeds/users/bob-baumeister'
|
|||||||
import { garrickOllivander } from '@/seeds/users/garrick-ollivander'
|
import { garrickOllivander } from '@/seeds/users/garrick-ollivander'
|
||||||
import { peterLustig } from '@/seeds/users/peter-lustig'
|
import { peterLustig } from '@/seeds/users/peter-lustig'
|
||||||
import { stephenHawking } from '@/seeds/users/stephen-hawking'
|
import { stephenHawking } from '@/seeds/users/stephen-hawking'
|
||||||
|
import { cleanDB, testEnvironment } from '@test/helpers'
|
||||||
|
import { logger } from '@test/testSetup'
|
||||||
|
|
||||||
let mutate: any, query: any, con: any
|
let mutate: any, query: any, con: any
|
||||||
let testEnv: any
|
let testEnv: any
|
||||||
|
|||||||
@ -9,10 +9,10 @@ import { getCustomRepository, getConnection, In } from '@dbTools/typeorm'
|
|||||||
import { User as dbUser } from '@entity/User'
|
import { User as dbUser } from '@entity/User'
|
||||||
import { Transaction as dbTransaction } from '@entity/Transaction'
|
import { Transaction as dbTransaction } from '@entity/Transaction'
|
||||||
import { TransactionLink as dbTransactionLink } from '@entity/TransactionLink'
|
import { TransactionLink as dbTransactionLink } from '@entity/TransactionLink'
|
||||||
import { getLastTransaction } from './util/getLastTransaction'
|
|
||||||
import { findUserByEmail } from './UserResolver'
|
|
||||||
import { MEMO_MAX_CHARS, MEMO_MIN_CHARS } from './const/const'
|
|
||||||
import { BalanceResolver } from './BalanceResolver'
|
import { BalanceResolver } from './BalanceResolver'
|
||||||
|
import { MEMO_MAX_CHARS, MEMO_MIN_CHARS } from './const/const'
|
||||||
|
import { findUserByEmail } from './UserResolver'
|
||||||
|
import { getLastTransaction } from './util/getLastTransaction'
|
||||||
import { TransactionRepository } from '@repository/Transaction'
|
import { TransactionRepository } from '@repository/Transaction'
|
||||||
import { TransactionLinkRepository } from '@repository/TransactionLink'
|
import { TransactionLinkRepository } from '@repository/TransactionLink'
|
||||||
|
|
||||||
@ -21,9 +21,9 @@ import { Transaction } from '@model/Transaction'
|
|||||||
import { TransactionList } from '@model/TransactionList'
|
import { TransactionList } from '@model/TransactionList'
|
||||||
import { Order } from '@enum/Order'
|
import { Order } from '@enum/Order'
|
||||||
import { TransactionTypeId } from '@enum/TransactionTypeId'
|
import { TransactionTypeId } from '@enum/TransactionTypeId'
|
||||||
|
import { calculateBalance } from '@/util/validate'
|
||||||
import TransactionSendArgs from '@arg/TransactionSendArgs'
|
import TransactionSendArgs from '@arg/TransactionSendArgs'
|
||||||
import Paginated from '@arg/Paginated'
|
import Paginated from '@arg/Paginated'
|
||||||
import { calculateBalance } from '@/util/validate'
|
|
||||||
|
|
||||||
import { backendLogger as logger } from '@/server/logger'
|
import { backendLogger as logger } from '@/server/logger'
|
||||||
import { Context, getUser } from '@/server/context'
|
import { Context, getUser } from '@/server/context'
|
||||||
|
|||||||
@ -15,10 +15,9 @@ import { Event as DbEvent } from '@entity/Event'
|
|||||||
import { OptInType } from '@enum/OptInType'
|
import { OptInType } from '@enum/OptInType'
|
||||||
import { UserContactType } from '@enum/UserContactType'
|
import { UserContactType } from '@enum/UserContactType'
|
||||||
import { PasswordEncryptionType } from '@enum/PasswordEncryptionType'
|
import { PasswordEncryptionType } from '@enum/PasswordEncryptionType'
|
||||||
|
import { objectValuesToArray } from '@/util/utilities'
|
||||||
import { testEnvironment, headerPushMock, resetToken, cleanDB } from '@test/helpers'
|
import { testEnvironment, headerPushMock, resetToken, cleanDB } from '@test/helpers'
|
||||||
import { logger, i18n as localization } from '@test/testSetup'
|
import { logger, i18n as localization } from '@test/testSetup'
|
||||||
import { ContributionLink } from '@model/ContributionLink'
|
|
||||||
import { objectValuesToArray } from '@/util/utilities'
|
|
||||||
import { printTimeDuration } from '@/util/time'
|
import { printTimeDuration } from '@/util/time'
|
||||||
import { userFactory } from '@/seeds/factory/user'
|
import { userFactory } from '@/seeds/factory/user'
|
||||||
import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg'
|
import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg'
|
||||||
@ -45,6 +44,7 @@ import {
|
|||||||
} from '@/emails/sendEmailVariants'
|
} from '@/emails/sendEmailVariants'
|
||||||
import { contributionLinkFactory } from '@/seeds/factory/contributionLink'
|
import { contributionLinkFactory } from '@/seeds/factory/contributionLink'
|
||||||
import { transactionLinkFactory } from '@/seeds/factory/transactionLink'
|
import { transactionLinkFactory } from '@/seeds/factory/transactionLink'
|
||||||
|
import { ContributionLink } from '@model/ContributionLink'
|
||||||
import { EventType } from '@/event/Event'
|
import { EventType } from '@/event/Event'
|
||||||
import { peterLustig } from '@/seeds/users/peter-lustig'
|
import { peterLustig } from '@/seeds/users/peter-lustig'
|
||||||
import { bobBaumeister } from '@/seeds/users/bob-baumeister'
|
import { bobBaumeister } from '@/seeds/users/bob-baumeister'
|
||||||
|
|||||||
@ -21,8 +21,8 @@ import { User as DbUser } from '@entity/User'
|
|||||||
import { UserContact as DbUserContact } from '@entity/UserContact'
|
import { UserContact as DbUserContact } from '@entity/UserContact'
|
||||||
import { TransactionLink as DbTransactionLink } from '@entity/TransactionLink'
|
import { TransactionLink as DbTransactionLink } from '@entity/TransactionLink'
|
||||||
import { ContributionLink as DbContributionLink } from '@entity/ContributionLink'
|
import { ContributionLink as DbContributionLink } from '@entity/ContributionLink'
|
||||||
import { FULL_CREATION_AVAILABLE } from './const/const'
|
|
||||||
import { getUserCreations } from './util/creations'
|
import { getUserCreations } from './util/creations'
|
||||||
|
import { FULL_CREATION_AVAILABLE } from './const/const'
|
||||||
import { PasswordEncryptionType } from '@enum/PasswordEncryptionType'
|
import { PasswordEncryptionType } from '@enum/PasswordEncryptionType'
|
||||||
import { UserRepository } from '@repository/User'
|
import { UserRepository } from '@repository/User'
|
||||||
|
|
||||||
@ -33,18 +33,19 @@ import { OptInType } from '@enum/OptInType'
|
|||||||
import { Order } from '@enum/Order'
|
import { Order } from '@enum/Order'
|
||||||
import { UserContactType } from '@enum/UserContactType'
|
import { UserContactType } from '@enum/UserContactType'
|
||||||
|
|
||||||
import CreateUserArgs from '@arg/CreateUserArgs'
|
|
||||||
import UnsecureLoginArgs from '@arg/UnsecureLoginArgs'
|
|
||||||
import UpdateUserInfosArgs from '@arg/UpdateUserInfosArgs'
|
|
||||||
import Paginated from '@arg/Paginated'
|
|
||||||
import SearchUsersArgs from '@arg/SearchUsersArgs'
|
|
||||||
import { getTimeDurationObject, printTimeDuration } from '@/util/time'
|
|
||||||
import {
|
import {
|
||||||
sendAccountActivationEmail,
|
sendAccountActivationEmail,
|
||||||
sendAccountMultiRegistrationEmail,
|
sendAccountMultiRegistrationEmail,
|
||||||
sendResetPasswordEmail,
|
sendResetPasswordEmail,
|
||||||
} from '@/emails/sendEmailVariants'
|
} from '@/emails/sendEmailVariants'
|
||||||
|
|
||||||
|
import { getTimeDurationObject, printTimeDuration } from '@/util/time'
|
||||||
|
import CreateUserArgs from '@arg/CreateUserArgs'
|
||||||
|
import UnsecureLoginArgs from '@arg/UnsecureLoginArgs'
|
||||||
|
import UpdateUserInfosArgs from '@arg/UpdateUserInfosArgs'
|
||||||
|
import Paginated from '@arg/Paginated'
|
||||||
|
import SearchUsersArgs from '@arg/SearchUsersArgs'
|
||||||
|
|
||||||
import { backendLogger as logger } from '@/server/logger'
|
import { backendLogger as logger } from '@/server/logger'
|
||||||
import { Context, getUser, getClientTimezoneOffset } from '@/server/context'
|
import { Context, getUser, getClientTimezoneOffset } from '@/server/context'
|
||||||
import CONFIG from '@/config'
|
import CONFIG from '@/config'
|
||||||
|
|||||||
@ -5,12 +5,12 @@
|
|||||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||||
|
|
||||||
import { Decimal } from 'decimal.js-light'
|
import { Decimal } from 'decimal.js-light'
|
||||||
import { cleanDB, testEnvironment, contributionDateFormatter } from '@test/helpers'
|
|
||||||
import { userFactory } from '@/seeds/factory/user'
|
import { userFactory } from '@/seeds/factory/user'
|
||||||
import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg'
|
import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg'
|
||||||
import { bobBaumeister } from '@/seeds/users/bob-baumeister'
|
import { bobBaumeister } from '@/seeds/users/bob-baumeister'
|
||||||
import { peterLustig } from '@/seeds/users/peter-lustig'
|
import { peterLustig } from '@/seeds/users/peter-lustig'
|
||||||
import { creationFactory, nMonthsBefore } from '@/seeds/factory/creation'
|
import { creationFactory, nMonthsBefore } from '@/seeds/factory/creation'
|
||||||
|
import { cleanDB, testEnvironment, contributionDateFormatter } from '@test/helpers'
|
||||||
import {
|
import {
|
||||||
confirmContribution,
|
confirmContribution,
|
||||||
createContribution,
|
createContribution,
|
||||||
|
|||||||
@ -3,9 +3,9 @@
|
|||||||
import { getConnection } from '@dbTools/typeorm'
|
import { getConnection } from '@dbTools/typeorm'
|
||||||
import { Contribution } from '@entity/Contribution'
|
import { Contribution } from '@entity/Contribution'
|
||||||
import { Decimal } from 'decimal.js-light'
|
import { Decimal } from 'decimal.js-light'
|
||||||
import { OpenCreation } from '@model/OpenCreation'
|
|
||||||
import { FULL_CREATION_AVAILABLE, MAX_CREATION_AMOUNT } from '@/graphql/resolver/const/const'
|
import { FULL_CREATION_AVAILABLE, MAX_CREATION_AMOUNT } from '@/graphql/resolver/const/const'
|
||||||
import { backendLogger as logger } from '@/server/logger'
|
import { backendLogger as logger } from '@/server/logger'
|
||||||
|
import { OpenCreation } from '@model/OpenCreation'
|
||||||
import LogError from '@/server/LogError'
|
import LogError from '@/server/LogError'
|
||||||
|
|
||||||
interface CreationMap {
|
interface CreationMap {
|
||||||
|
|||||||
@ -3,8 +3,8 @@
|
|||||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||||
/* eslint-disable @typescript-eslint/restrict-template-expressions */
|
/* eslint-disable @typescript-eslint/restrict-template-expressions */
|
||||||
import { MiddlewareFn } from 'type-graphql'
|
import { MiddlewareFn } from 'type-graphql'
|
||||||
import { KlickTipp } from '@model/KlickTipp'
|
|
||||||
import { /* klicktippSignIn, */ getKlickTippUser } from '@/apis/KlicktippController'
|
import { /* klicktippSignIn, */ getKlickTippUser } from '@/apis/KlicktippController'
|
||||||
|
import { KlickTipp } from '@model/KlickTipp'
|
||||||
import CONFIG from '@/config'
|
import CONFIG from '@/config'
|
||||||
import { klickTippLogger as logger } from '@/server/logger'
|
import { klickTippLogger as logger } from '@/server/logger'
|
||||||
|
|
||||||
|
|||||||
@ -2,10 +2,10 @@
|
|||||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
||||||
import { User } from '@entity/User'
|
import { User } from '@entity/User'
|
||||||
import { PasswordEncryptionType } from '@enum/PasswordEncryptionType'
|
|
||||||
import CONFIG from '@/config'
|
import CONFIG from '@/config'
|
||||||
import LogError from '@/server/LogError'
|
import LogError from '@/server/LogError'
|
||||||
import { backendLogger as logger } from '@/server/logger'
|
import { backendLogger as logger } from '@/server/logger'
|
||||||
|
import { PasswordEncryptionType } from '@enum/PasswordEncryptionType'
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-var-requires, import/no-commonjs
|
// eslint-disable-next-line @typescript-eslint/no-var-requires, import/no-commonjs
|
||||||
const sodium = require('sodium-native')
|
const sodium = require('sodium-native')
|
||||||
|
|||||||
@ -2,8 +2,8 @@
|
|||||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||||
/* eslint-disable @typescript-eslint/unbound-method */
|
/* eslint-disable @typescript-eslint/unbound-method */
|
||||||
import { ApolloServerTestClient } from 'apollo-server-testing'
|
import { ApolloServerTestClient } from 'apollo-server-testing'
|
||||||
import { ContributionLink } from '@model/ContributionLink'
|
|
||||||
import { login, createContributionLink } from '@/seeds/graphql/mutations'
|
import { login, createContributionLink } from '@/seeds/graphql/mutations'
|
||||||
|
import { ContributionLink } from '@model/ContributionLink'
|
||||||
import { ContributionLinkInterface } from '@/seeds/contributionLink/ContributionLinkInterface'
|
import { ContributionLinkInterface } from '@/seeds/contributionLink/ContributionLinkInterface'
|
||||||
|
|
||||||
export const contributionLinkFactory = async (
|
export const contributionLinkFactory = async (
|
||||||
|
|||||||
@ -3,9 +3,9 @@
|
|||||||
import { SaveOptions, RemoveOptions } from '@dbTools/typeorm'
|
import { SaveOptions, RemoveOptions } from '@dbTools/typeorm'
|
||||||
import { User as dbUser } from '@entity/User'
|
import { User as dbUser } from '@entity/User'
|
||||||
import { UserContact } from '@entity/UserContact'
|
import { UserContact } from '@entity/UserContact'
|
||||||
import { User } from '@model/User'
|
|
||||||
import { PasswordEncryptionType } from '@/graphql/enum/PasswordEncryptionType'
|
import { PasswordEncryptionType } from '@/graphql/enum/PasswordEncryptionType'
|
||||||
// import { UserContact as EmailContact } from '@entity/UserContact'
|
// import { UserContact as EmailContact } from '@entity/UserContact'
|
||||||
|
import { User } from '@model/User'
|
||||||
|
|
||||||
const communityDbUser: dbUser = {
|
const communityDbUser: dbUser = {
|
||||||
id: -1,
|
id: -1,
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { Decimal } from 'decimal.js-light'
|
import { Decimal } from 'decimal.js-light'
|
||||||
import { Decay } from '@model/Decay'
|
|
||||||
import CONFIG from '@/config'
|
import CONFIG from '@/config'
|
||||||
|
import { Decay } from '@model/Decay'
|
||||||
import LogError from '@/server/LogError'
|
import LogError from '@/server/LogError'
|
||||||
|
|
||||||
// TODO: externalize all those definitions and functions into an external decay library
|
// TODO: externalize all those definitions and functions into an external decay library
|
||||||
|
|||||||
@ -2,9 +2,9 @@ import { Decimal } from 'decimal.js-light'
|
|||||||
import { getCustomRepository } from '@dbTools/typeorm'
|
import { getCustomRepository } from '@dbTools/typeorm'
|
||||||
import { TransactionLink as dbTransactionLink } from '@entity/TransactionLink'
|
import { TransactionLink as dbTransactionLink } from '@entity/TransactionLink'
|
||||||
import { calculateDecay } from './decay'
|
import { calculateDecay } from './decay'
|
||||||
|
import { getLastTransaction } from '@/graphql/resolver/util/getLastTransaction'
|
||||||
import { TransactionLinkRepository } from '@repository/TransactionLink'
|
import { TransactionLinkRepository } from '@repository/TransactionLink'
|
||||||
import { Decay } from '@model/Decay'
|
import { Decay } from '@model/Decay'
|
||||||
import { getLastTransaction } from '@/graphql/resolver/util/getLastTransaction'
|
|
||||||
|
|
||||||
function isStringBoolean(value: string): boolean {
|
function isStringBoolean(value: string): boolean {
|
||||||
const lowerValue = value.toLowerCase()
|
const lowerValue = value.toLowerCase()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user