feat: implement e2e test for CompanyResolver (#944)

* feat: wip e2e server test

* feat: use github action postgres & use infra for local

* feat: company e2e test

* feat: add company e2e test for permissions

* Simplify server e2e test run

* Fix lint

---------

Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
Jérémy M
2023-07-27 18:48:40 +02:00
committed by GitHub
parent 9027406fdf
commit 157e5b9a2e
25 changed files with 655 additions and 59 deletions

View File

@ -21,11 +21,12 @@ import { CheckAbilities } from 'src/decorators/check-abilities.decorator';
import {
CreateCompanyAbilityHandler,
DeleteCompanyAbilityHandler,
ReadCompanyAbilityHandler,
ReadOneCompanyAbilityHandler,
UpdateCompanyAbilityHandler,
} from 'src/ability/handlers/company.ability-handler';
import { UserAbility } from 'src/decorators/user-ability.decorator';
import { AppAbility } from 'src/ability/ability.factory';
import { FindUniqueCompanyArgs } from 'src/core/@generated/company/find-unique-company.args';
import { CompanyService } from './company.service';
@ -36,7 +37,6 @@ export class CompanyResolver {
@Query(() => [Company])
@UseGuards(AbilityGuard)
@CheckAbilities(ReadCompanyAbilityHandler)
async findManyCompany(
@Args() args: FindManyCompanyArgs,
@UserAbility() ability: AppAbility,
@ -60,19 +60,18 @@ export class CompanyResolver {
@Query(() => Company)
@UseGuards(AbilityGuard)
@CheckAbilities(ReadCompanyAbilityHandler)
@CheckAbilities(ReadOneCompanyAbilityHandler)
async findUniqueCompany(
@Args('id') id: string,
@UserAbility() ability: AppAbility,
@Args() args: FindUniqueCompanyArgs,
@PrismaSelector({ modelName: 'Company' })
prismaSelect: PrismaSelect<'Company'>,
): Promise<Partial<Company>> {
return this.companyService.findUniqueOrThrow({
where: {
id: id,
},
const company = this.companyService.findUniqueOrThrow({
where: args.where,
select: prismaSelect.value,
});
return company;
}
@Mutation(() => Company, {

View File

@ -1,9 +1,9 @@
import { Test, TestingModule } from '@nestjs/testing';
import { ViewFieldService } from 'src/core/view/services/view-field.service';
import { AbilityFactory } from 'src/ability/ability.factory';
import { ViewFieldResolver } from './view-field.resolver';
import { AbilityFactory } from 'src/ability/ability.factory';
describe('ViewFieldResolver', () => {
let resolver: ViewFieldResolver;