Skip to content

Commit e74910b

Browse files
authored
feat: move org location to dataset (#3360)
1 parent caa00d2 commit e74910b

21 files changed

Lines changed: 242 additions & 60 deletions

__tests__/cron/cleanZombieOpportunities.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { DataSource } from 'typeorm';
44
import createOrGetConnection from '../../src/db';
55
import { crons } from '../../src/cron/index';
66
import {
7+
datasetLocationsFixture,
78
opportunitiesFixture,
89
organizationsFixture,
910
} from '../fixture/opportunity';
@@ -12,6 +13,7 @@ import { OpportunityJob } from '../../src/entity/opportunities/OpportunityJob';
1213
import { subDays } from 'date-fns';
1314
import { Organization } from '../../src/entity/Organization';
1415
import { Opportunity } from '../../src/entity/opportunities/Opportunity';
16+
import { DatasetLocation } from '../../src/entity/dataset/DatasetLocation';
1517

1618
let con: DataSource;
1719

@@ -22,6 +24,7 @@ beforeAll(async () => {
2224
beforeEach(async () => {
2325
jest.clearAllMocks();
2426

27+
await saveFixtures(con, DatasetLocation, datasetLocationsFixture);
2528
await saveFixtures(con, Organization, organizationsFixture);
2629

2730
await saveFixtures(

__tests__/cron/userProfileUpdatedSync.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ import { expectSuccessfulCron, saveFixtures } from '../helpers';
33
import { DataSource } from 'typeorm';
44
import createOrGetConnection from '../../src/db';
55
import { crons } from '../../src/cron/index';
6-
import { organizationsFixture } from '../fixture/opportunity';
6+
import {
7+
datasetLocationsFixture,
8+
organizationsFixture,
9+
} from '../fixture/opportunity';
710
import { userExperienceWorkFixture } from '../fixture/profile/work';
811
import { Organization } from '../../src/entity/Organization';
912
import { insertOrIgnoreUserExperienceSkills } from '../../src/entity/user/experiences/UserExperienceSkill';
@@ -38,6 +41,7 @@ beforeAll(async () => {
3841
beforeEach(async () => {
3942
jest.clearAllMocks();
4043

44+
await saveFixtures(con, DatasetLocation, datasetLocationsFixture);
4145
await saveFixtures(con, Organization, organizationsFixture);
4246
await saveFixtures(con, User, usersFixture);
4347
await saveFixtures(con, Company, companyFixture);

__tests__/fixture/opportunity.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export const organizationsFixture: DeepPartial<Organization>[] = [
2929
image: 'https://example.com/logo.png',
3030
website: 'https://daily.dev',
3131
description: 'A platform for developers',
32-
location: 'San Francisco',
32+
locationId: '660e8400-e29b-41d4-a716-446655440003',
3333
links: [
3434
{
3535
type: OrganizationLinkType.Custom,
@@ -59,7 +59,7 @@ export const organizationsFixture: DeepPartial<Organization>[] = [
5959
image: 'https://example.com/logo.png',
6060
website: 'https://yearly.dev',
6161
description: 'A platform for others',
62-
location: 'Skatval',
62+
locationId: '660e8400-e29b-41d4-a716-446655440001',
6363
links: [],
6464
},
6565
{
@@ -68,7 +68,7 @@ export const organizationsFixture: DeepPartial<Organization>[] = [
6868
image: 'https://example.com/logo.png',
6969
website: 'https://monthly.dev',
7070
description: 'Another platform for developers',
71-
location: 'Oslo',
71+
locationId: '660e8400-e29b-41d4-a716-446655440001',
7272
links: [],
7373
},
7474
];

__tests__/schema/opportunity.ts

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ beforeEach(async () => {
151151

152152
await saveFixtures(con, User, usersFixture);
153153
await saveFixtures(con, Keyword, keywordsFixture);
154-
await saveFixtures(con, Organization, organizationsFixture);
155154
await saveFixtures(con, DatasetLocation, datasetLocationsFixture);
155+
await saveFixtures(con, Organization, organizationsFixture);
156156
await saveFixtures(con, Opportunity, opportunitiesFixture);
157157
await saveFixtures(con, OpportunityLocation, opportunityLocationsFixture);
158158
await saveFixtures(con, QuestionScreening, opportunityQuestionsFixture);
@@ -233,7 +233,11 @@ describe('query opportunityById', () => {
233233
image
234234
website
235235
description
236-
location
236+
location {
237+
city
238+
country
239+
subdivision
240+
}
237241
customLinks {
238242
...Link
239243
}
@@ -323,7 +327,11 @@ describe('query opportunityById', () => {
323327
image: 'https://example.com/logo.png',
324328
website: 'https://daily.dev',
325329
description: 'A platform for developers',
326-
location: 'San Francisco',
330+
location: {
331+
city: 'San Francisco',
332+
country: 'USA',
333+
subdivision: 'CA',
334+
},
327335
customLinks: [
328336
{
329337
type: 'custom',
@@ -4343,7 +4351,10 @@ describe('mutation editOpportunity', () => {
43434351
description
43444352
perks
43454353
founded
4346-
location
4354+
location {
4355+
city
4356+
country
4357+
}
43474358
category
43484359
size
43494360
stage
@@ -4361,7 +4372,7 @@ describe('mutation editOpportunity', () => {
43614372
description: 'Updated description',
43624373
perks: ['Remote work', 'Flexible hours'],
43634374
founded: 2021,
4364-
location: 'Berlin, Germany',
4375+
externalLocationId: 'norway-remote',
43654376
category: 'Technology',
43664377
size: CompanySize.COMPANY_SIZE_51_200,
43674378
stage: CompanyStage.SERIES_B,
@@ -4376,7 +4387,10 @@ describe('mutation editOpportunity', () => {
43764387
description: 'Updated description',
43774388
perks: ['Remote work', 'Flexible hours'],
43784389
founded: 2021,
4379-
location: 'Berlin, Germany',
4390+
location: {
4391+
city: null,
4392+
country: 'Norway',
4393+
},
43804394
category: 'Technology',
43814395
size: CompanySize.COMPANY_SIZE_51_200,
43824396
stage: CompanyStage.SERIES_B,
@@ -4392,11 +4406,14 @@ describe('mutation editOpportunity', () => {
43924406
description: 'Updated description',
43934407
perks: ['Remote work', 'Flexible hours'],
43944408
founded: 2021,
4395-
location: 'Berlin, Germany',
43964409
category: 'Technology',
43974410
size: CompanySize.COMPANY_SIZE_51_200,
43984411
stage: CompanyStage.SERIES_B,
43994412
});
4413+
const location = await organization.location;
4414+
expect(location).toMatchObject({
4415+
country: 'Norway',
4416+
});
44004417
});
44014418

44024419
it('should update recruiter title and bio', async () => {
@@ -4527,7 +4544,10 @@ describe('mutation editOpportunity', () => {
45274544
description
45284545
perks
45294546
founded
4530-
location
4547+
location {
4548+
city
4549+
country
4550+
}
45314551
category
45324552
size
45334553
stage
@@ -4569,7 +4589,7 @@ describe('mutation editOpportunity', () => {
45694589
description: 'Updated description',
45704590
perks: ['Remote work', 'Flexible hours'],
45714591
founded: 2021,
4572-
location: 'Berlin, Germany',
4592+
externalLocationId: 'norway-remote',
45734593
category: 'Technology',
45744594
size: CompanySize.COMPANY_SIZE_51_200,
45754595
stage: CompanyStage.SERIES_B,
@@ -4585,7 +4605,10 @@ describe('mutation editOpportunity', () => {
45854605
description: 'Updated description',
45864606
perks: ['Remote work', 'Flexible hours'],
45874607
founded: 2021,
4588-
location: 'Berlin, Germany',
4608+
location: {
4609+
city: null,
4610+
country: 'Norway',
4611+
},
45894612
category: 'Technology',
45904613
size: CompanySize.COMPANY_SIZE_51_200,
45914614
stage: CompanyStage.SERIES_B,
@@ -4602,11 +4625,14 @@ describe('mutation editOpportunity', () => {
46024625
description: 'Updated description',
46034626
perks: ['Remote work', 'Flexible hours'],
46044627
founded: 2021,
4605-
location: 'Berlin, Germany',
46064628
category: 'Technology',
46074629
size: CompanySize.COMPANY_SIZE_51_200,
46084630
stage: CompanyStage.SERIES_B,
46094631
});
4632+
const location = await organization.location;
4633+
expect(location).toMatchObject({
4634+
country: 'Norway',
4635+
});
46104636

46114637
const opportunityAfter = await con
46124638
.getRepository(OpportunityJob)

__tests__/workers/candidateAcceptedOpportunitySlack.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@ import { Organization } from '../../src/entity/Organization';
1212
import {
1313
organizationsFixture,
1414
opportunitiesFixture,
15+
datasetLocationsFixture,
1516
} from '../fixture/opportunity';
1617
import { usersFixture } from '../fixture/user';
18+
import { DatasetLocation } from '../../src/entity/dataset/DatasetLocation';
1719

1820
// Spy on the webhooks.recruiter.send method
1921
const mockRecruiterSend = jest
@@ -29,6 +31,7 @@ beforeAll(async () => {
2931

3032
beforeEach(async () => {
3133
jest.resetAllMocks();
34+
await saveFixtures(con, DatasetLocation, datasetLocationsFixture);
3235
await saveFixtures(con, Organization, organizationsFixture);
3336
await saveFixtures(con, OpportunityJob, opportunitiesFixture);
3437
await saveFixtures(con, User, usersFixture);

__tests__/workers/cdc/primary.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ import {
179179
} from '../../../src/entity/opportunities/types';
180180
import { OpportunityJob } from '../../../src/entity/opportunities/OpportunityJob';
181181
import {
182+
datasetLocationsFixture,
182183
opportunitiesFixture,
183184
organizationsFixture,
184185
} from '../../fixture/opportunity';
@@ -194,6 +195,7 @@ import { UserExperience } from '../../../src/entity/user/experiences/UserExperie
194195
import { UserExperienceWork } from '../../../src/entity/user/experiences/UserExperienceWork';
195196
import { UserExperienceType } from '../../../src/entity/user/experiences/types';
196197
import { Company } from '../../../src/entity/Company';
198+
import { DatasetLocation } from '../../../src/entity/dataset/DatasetLocation';
197199

198200
jest.mock('../../../src/common', () => ({
199201
...(jest.requireActual('../../../src/common') as Record<string, unknown>),
@@ -5979,6 +5981,7 @@ describe('opportunity match', () => {
59795981
bio: 'Here to break things',
59805982
},
59815983
);
5984+
await saveFixtures(con, DatasetLocation, datasetLocationsFixture);
59825985
await saveFixtures(con, Organization, organizationsFixture);
59835986
await saveFixtures(con, Opportunity, opportunitiesFixture);
59845987
await con.getRepository(UserCandidatePreference).save({
@@ -6243,6 +6246,7 @@ describe('opportunity match', () => {
62436246
describe('opportunity', () => {
62446247
beforeEach(async () => {
62456248
await saveFixtures(con, User, usersFixture);
6249+
await saveFixtures(con, DatasetLocation, datasetLocationsFixture);
62466250
await saveFixtures(con, Organization, organizationsFixture);
62476251
await saveFixtures(con, Opportunity, opportunitiesFixture);
62486252
await con.getRepository(Feed).save([
@@ -6868,6 +6872,7 @@ describe('user_candidate_preference', () => {
68686872

68696873
describe('organization', () => {
68706874
beforeEach(async () => {
6875+
await saveFixtures(con, DatasetLocation, datasetLocationsFixture);
68716876
await saveFixtures(con, Organization, organizationsFixture);
68726877
await saveFixtures(con, Opportunity, opportunitiesFixture);
68736878
});

__tests__/workers/newNotificationV2Mail.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,12 @@ import { OpportunityMatch } from '../../src/entity/OpportunityMatch';
100100
import { OpportunityUserRecruiter } from '../../src/entity/opportunities/user';
101101
import { OpportunityUserType } from '../../src/entity/opportunities/types';
102102
import {
103+
datasetLocationsFixture,
103104
opportunitiesFixture,
104105
opportunityMatchesFixture,
105106
organizationsFixture,
106107
} from '../fixture/opportunity';
108+
import { DatasetLocation } from '../../src/entity/dataset/DatasetLocation';
107109

108110
jest.mock('../../src/common/mailing', () => ({
109111
...(jest.requireActual('../../src/common/mailing') as Record<
@@ -1872,6 +1874,7 @@ describe('user_post_added notification', () => {
18721874

18731875
describe('new_opportunity_match notification', () => {
18741876
it('should send email', async () => {
1877+
await saveFixtures(con, DatasetLocation, datasetLocationsFixture);
18751878
await saveFixtures(con, Organization, organizationsFixture);
18761879
await saveFixtures(con, Opportunity, opportunitiesFixture);
18771880
await saveFixtures(con, OpportunityMatch, opportunityMatchesFixture);
@@ -2755,6 +2758,7 @@ describe('poll result notifications', () => {
27552758

27562759
describe('warm_intro notification', () => {
27572760
it('should send email to both candidate and recruiter', async () => {
2761+
await saveFixtures(con, DatasetLocation, datasetLocationsFixture);
27582762
await saveFixtures(con, Organization, organizationsFixture);
27592763
await saveFixtures(con, Opportunity, opportunitiesFixture);
27602764
await saveFixtures(con, OpportunityMatch, opportunityMatchesFixture);

__tests__/workers/opportunity/opportunityPreviewResult.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@ import { User, Organization } from '../../../src/entity';
66
import { Opportunity } from '../../../src/entity/opportunities/Opportunity';
77
import { usersFixture } from '../../fixture';
88
import {
9+
datasetLocationsFixture,
910
opportunitiesFixture,
1011
organizationsFixture,
1112
} from '../../fixture/opportunity';
1213
import { OpportunityPreviewResult } from '@dailydotdev/schema';
1314
import { OpportunityJob } from '../../../src/entity/opportunities/OpportunityJob';
1415
import { OpportunityPreviewStatus } from '../../../src/common/opportunity/types';
16+
import { DatasetLocation } from '../../../src/entity/dataset/DatasetLocation';
1517

1618
let con: DataSource;
1719

@@ -22,6 +24,7 @@ beforeAll(async () => {
2224
describe('opportunityPreviewResult worker', () => {
2325
beforeEach(async () => {
2426
jest.resetAllMocks();
27+
await saveFixtures(con, DatasetLocation, datasetLocationsFixture);
2528
await saveFixtures(con, Organization, organizationsFixture);
2629
await saveFixtures(con, User, usersFixture);
2730
await saveFixtures(con, Opportunity, opportunitiesFixture);

__tests__/workers/opportunity/storeCandidateApplicationScore.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ import { OpportunityMatch } from '../../../src/entity/OpportunityMatch';
77
import { Opportunity } from '../../../src/entity/opportunities/Opportunity';
88
import { usersFixture } from '../../fixture';
99
import {
10+
datasetLocationsFixture,
1011
opportunitiesFixture,
1112
organizationsFixture,
1213
} from '../../fixture/opportunity';
1314
import { ApplicationScored } from '@dailydotdev/schema';
15+
import { DatasetLocation } from '../../../src/entity/dataset/DatasetLocation';
1416

1517
let con: DataSource;
1618

@@ -21,6 +23,7 @@ beforeAll(async () => {
2123
describe('storeCandidateApplicationScore worker', () => {
2224
beforeEach(async () => {
2325
jest.resetAllMocks();
26+
await saveFixtures(con, DatasetLocation, datasetLocationsFixture);
2427
await saveFixtures(con, Organization, organizationsFixture);
2528
await saveFixtures(con, User, usersFixture);
2629
await saveFixtures(con, Opportunity, opportunitiesFixture);

__tests__/workers/opportunity/storeCandidateOpportunityMatch.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ import { User, Organization, Alerts } from '../../../src/entity';
77
import { Opportunity } from '../../../src/entity/opportunities/Opportunity';
88
import { usersFixture } from '../../fixture';
99
import {
10+
datasetLocationsFixture,
1011
opportunitiesFixture,
1112
organizationsFixture,
1213
} from '../../fixture/opportunity';
1314
import { MatchedCandidate } from '@dailydotdev/schema';
15+
import { DatasetLocation } from '../../../src/entity/dataset/DatasetLocation';
1416

1517
let con: DataSource;
1618

@@ -21,6 +23,7 @@ beforeAll(async () => {
2123
describe('storeCandidateOpportunityMatch worker', () => {
2224
beforeEach(async () => {
2325
jest.resetAllMocks();
26+
await saveFixtures(con, DatasetLocation, datasetLocationsFixture);
2427
await saveFixtures(con, Organization, organizationsFixture);
2528
await saveFixtures(con, User, usersFixture);
2629
await saveFixtures(con, Opportunity, opportunitiesFixture);

0 commit comments

Comments
 (0)