export async function processRequest()

in packages/autorest.gotest/src/generator/goTester.ts [19:83]


export async function processRequest(host: AutorestExtensionHost): Promise<void> {
  const session = await TestCodeModeler.getSessionFromHost(host);

  const config = new TestConfig(await session.getValue(''), configDefaults);
  if (config.getValue(Config.exportCodemodel)) {
    Helper.addCodeModelDump(session, 'go-tester-pre.yaml', false);
  }

  // try to get commit/tree name from require config
  const rpRegex = /Azure\/azure-rest-api-specs\/(blob\/|tree\/|)(?<swaggerCommit>[^/]+)\//;

  let swaggerCommit = 'main';
  if (session.configuration?.require) {
    for (const config of session.configuration.require) {
      const execResult = rpRegex.exec(config);
      if (execResult?.groups['swaggerCommit']) {
        swaggerCommit = execResult?.groups['swaggerCommit'];
        break;
      }
    }
  }

  const context = new GenerateContext(host, session.model, config, swaggerCommit);
  const mockTestDataRender = new MockTestDataRender(context);
  mockTestDataRender.renderData();

  const extraParam = {
    copyright: await Helper.getCopyright(session),
    sendExampleId: config.getValue(Config.sendExampleId),
    verifyResponse: config.getValue(Config.verifyResponse),
  };
  if (config.getValue(Config.generateMockTest)) {
    const mockTestCodeGenerator = new MockTestCodeGenerator(context);
    mockTestCodeGenerator.generateCode(extraParam);
  }
  if (config.getValue(Config.generateSdkExample)) {
    const exampleDataRender = new ExampleDataRender(context);
    exampleDataRender.renderData();
    const exampleCodeGenerator = new ExampleCodeGenerator(context);
    exampleCodeGenerator.generateCode(extraParam);
  }
  if (config.getValue(Config.generateScenarioTest)) {
    const scenarioTestDataRender = new ScenarioTestDataRender(context);
    scenarioTestDataRender.renderData();
    const scenarioTestCodeGenerator = new ScenarioTestCodeGenerator(context);
    scenarioTestCodeGenerator.generateCode(extraParam);
  }
  if (config.getValue(Config.generateSdkSample)) {
    const sampleDataRender = new SampleDataRender(context);
    sampleDataRender.renderData();
    const sampleCodeGenerator = new SampleCodeGenerator(context);
    sampleCodeGenerator.generateCode(extraParam);
  }
  if (config.getValue(Config.generateFakeTest)) {
    const fakeDataRender = new FakeDataRender(context);
    fakeDataRender.renderData();
    const fakeCodeGenerator = new FakeTestCodeGenerator(context);
    fakeCodeGenerator.generateCode(extraParam);
  }
  await Helper.outputToModelerfour(host, session, false);
  if (config.getValue(Config.exportCodemodel)) {
    Helper.addCodeModelDump(session, 'go-tester.yaml', false);
  }
  Helper.dump(host);
}