Refactor to a private constructor and static fromConfig
Signed-off-by: Nikolas Skoufis <nskoufis@seek.com.au>
This commit is contained in:
@@ -41,7 +41,8 @@ describe('DefaultDocsBuildStrategy', () => {
|
||||
|
||||
describe('shouldBuild', () => {
|
||||
it('should return true when techdocs.build is set to local', async () => {
|
||||
const defaultDocsBuildStrategy = new DefaultDocsBuildStrategy(config);
|
||||
const defaultDocsBuildStrategy =
|
||||
DefaultDocsBuildStrategy.fromConfig(config);
|
||||
|
||||
MockedConfigReader.prototype.getString.mockReturnValue('local');
|
||||
|
||||
@@ -51,7 +52,8 @@ describe('DefaultDocsBuildStrategy', () => {
|
||||
});
|
||||
|
||||
it('should return false when techdocs.build is set to external', async () => {
|
||||
const defaultDocsBuildStrategy = new DefaultDocsBuildStrategy(config);
|
||||
const defaultDocsBuildStrategy =
|
||||
DefaultDocsBuildStrategy.fromConfig(config);
|
||||
|
||||
MockedConfigReader.prototype.getString.mockReturnValue('external');
|
||||
|
||||
|
||||
@@ -28,10 +28,14 @@ export interface DocsBuildStrategy {
|
||||
export class DefaultDocsBuildStrategy {
|
||||
private readonly config: Config;
|
||||
|
||||
constructor(config: Config) {
|
||||
private constructor(config: Config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
static fromConfig(config: Config): DefaultDocsBuildStrategy {
|
||||
return new DefaultDocsBuildStrategy(config);
|
||||
}
|
||||
|
||||
async shouldBuild(_: Entity): Promise<boolean> {
|
||||
return this.config.getString('techdocs.builder') === 'local';
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ export async function createRouter(
|
||||
const { publisher, config, logger, discovery } = options;
|
||||
const catalogClient = new CatalogClient({ discoveryApi: discovery });
|
||||
const docsBuildStrategy =
|
||||
options.docsBuildStrategy ?? new DefaultDocsBuildStrategy(config);
|
||||
options.docsBuildStrategy ?? DefaultDocsBuildStrategy.fromConfig(config);
|
||||
|
||||
// Entities are cached to optimize the /static/docs request path, which can be called many times
|
||||
// when loading a single techdocs page.
|
||||
|
||||
Reference in New Issue
Block a user