private generateString()

in lib/generator/mocker.ts [31:79]


  private generateString(paramSpec: any, paramName: string) {
    const pwdParams = ["password", "pwd", "adminPassword"];

    if (paramSpec.name === "subscriptionId") {
      return uuid.v4().toUpperCase();
    }

    if (pwdParams.includes(paramName)) {
      return "<a-password-goes-here>";
    }

    if (paramSpec.format === "date") {
      return new Date().toISOString().split("T")[0];
    }

    if (paramSpec.format === "date-time") {
      return new Date().toISOString();
    }

    if (paramSpec.format === "duration") {
      return `PT${new Date().getMinutes()}M`;
    }

    if (paramSpec.format === "byte") {
      return `${Buffer.from(paramName + "1").toString("base64")}`;
    }

    if ("enum" in paramSpec) {
      if (paramSpec.enum.lengh > 0) {
        console.error(`${paramName}'s enum can not be empty`);
      }
      return paramSpec.enum[0];
    }
    const minLength = "minLength" in paramSpec ? paramSpec.minLength : 1;
    const maxLength = "maxLength" in paramSpec ? paramSpec.maxLength : minLength * 30;
    const length = this.getRandomInt(minLength, maxLength);
    let mockedValue = randomString(length);

    if ("pattern" in paramSpec) {
      return `Replace this value with a string matching RegExp ${paramSpec.pattern}`;
    }

    if (paramSpec.format === "uri") {
      const prefix = "https://microsoft.com/a";
      mockedValue = prefix + mockedValue.slice(prefix.length);
    }

    return mockedValue;
  }