Skip to content

Commit 3949fa3

Browse files
surilindurrubensworks
authored andcommitted
Allow skipping validation generation when no URL or config is provided
1 parent 054ab55 commit 3949fa3

File tree

2 files changed

+43
-8
lines changed

2 files changed

+43
-8
lines changed

lib/Generator.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ export class Generator {
2929
private readonly enhancementConfig: string;
3030
private readonly fragmentConfig: string;
3131
private readonly queryConfig: string;
32-
private readonly validationParams: string;
33-
private readonly validationConfig: string;
32+
private readonly validationParams: string | undefined;
33+
private readonly validationConfig: string | undefined;
3434
private readonly hadoopMemory: string;
3535
private readonly mainModulePath: string;
3636

@@ -82,8 +82,10 @@ export class Generator {
8282
await this.runPhase('SNB dataset enhancer', 'out-enhanced', () => this.enhanceSnbDataset());
8383
await this.runPhase('SNB dataset fragmenter', 'out-fragments', () => this.fragmentSnbDataset());
8484
await this.runPhase('SPARQL query instantiator', 'out-queries', () => this.instantiateQueries());
85-
await this.runPhase('SNB validation downloader', 'out-validate-params', () => this.downloadValidationParams());
86-
await this.runPhase('SNB validation generator', 'out-validate', () => this.generateValidation());
85+
if (this.validationParams && this.validationConfig) {
86+
await this.runPhase('SNB validation downloader', 'out-validate-params', () => this.downloadValidationParams());
87+
await this.runPhase('SNB validation generator', 'out-validate', () => this.generateValidation());
88+
}
8789
const timeEnd = process.hrtime(timeStart);
8890
this.log('All', `Done in ${timeEnd[0] + (timeEnd[1] / 1_000_000_000)} seconds`);
8991
}
@@ -210,7 +212,7 @@ export class Generator {
210212

211213
// Download and extract zip file
212214
return new Promise((resolve, reject) => {
213-
request(this.validationParams, (res) => {
215+
request(this.validationParams!, (res) => {
214216
res
215217
.on('error', reject)
216218
.pipe(Extract({ path: target }))
@@ -230,7 +232,7 @@ export class Generator {
230232
// Run generator
231233
const oldCwd = process.cwd();
232234
process.chdir(this.cwd);
233-
await runValidationGenerator(this.validationConfig, { mainModulePath: this.mainModulePath }, {
235+
await runValidationGenerator(this.validationConfig!, { mainModulePath: this.mainModulePath }, {
234236
variables: await this.generateVariables(),
235237
});
236238
process.chdir(oldCwd);
@@ -259,7 +261,7 @@ export interface IGeneratorOptions {
259261
enhancementConfig: string;
260262
fragmentConfig: string;
261263
queryConfig: string;
262-
validationParams: string;
263-
validationConfig: string;
264+
validationParams?: string;
265+
validationConfig?: string;
264266
hadoopMemory: string;
265267
}

test/Generator-test.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,5 +353,38 @@ describe('Generator', () => {
353353
expect(runValidationGenerator).not.toHaveBeenCalled();
354354
});
355355
});
356+
357+
describe('when validation parameters have not been provided', () => {
358+
beforeEach(() => {
359+
generator = new Generator({
360+
cwd: 'CWD',
361+
verbose: true,
362+
overwrite: false,
363+
scale: '0.1',
364+
enhancementConfig: 'enhancementConfig',
365+
fragmentConfig: 'fragmentConfig',
366+
queryConfig: 'queryConfig',
367+
// Omitted: validationParams
368+
// Omitted: validationConfig
369+
hadoopMemory: '4G',
370+
});
371+
});
372+
373+
it('should not download and generate validation data', async() => {
374+
jest.spyOn(generator, 'generateSnbDataset').mockImplementation();
375+
jest.spyOn(generator, 'enhanceSnbDataset').mockImplementation();
376+
jest.spyOn(generator, 'fragmentSnbDataset').mockImplementation();
377+
jest.spyOn(generator, 'instantiateQueries').mockImplementation();
378+
jest.spyOn(generator, 'downloadValidationParams').mockImplementation();
379+
jest.spyOn(generator, 'generateValidation').mockImplementation();
380+
await expect(generator.generate()).resolves.toBeUndefined();
381+
expect(generator.generateSnbDataset).toHaveBeenCalledTimes(1);
382+
expect(generator.enhanceSnbDataset).toHaveBeenCalledTimes(1);
383+
expect(generator.fragmentSnbDataset).toHaveBeenCalledTimes(1);
384+
expect(generator.instantiateQueries).toHaveBeenCalledTimes(1);
385+
expect(generator.downloadValidationParams).not.toHaveBeenCalled();
386+
expect(generator.generateValidation).not.toHaveBeenCalled();
387+
});
388+
});
356389
});
357390
});

0 commit comments

Comments
 (0)