All files / lib/joi-to-json-schema/types string.ts

100% Statements 19/19
90% Branches 9/10
100% Functions 2/2
100% Lines 19/19

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 331x 21x 21x 7x   1x 1x   2x 2x 2x     2x     1x 1x   1x 1x   1x 1x   1x 1x       21x    
export const string = (_convert, schema, joi) => {
  schema.type = "string";
  joi._rules.forEach(test => {
    switch (test.name) {
      case "email":
        schema.format = "email";
        break;
      case "pattern": {
        const args = test.args;
        const pattern = args && args.regex ? args.regex : args;
        schema.pattern = String(pattern)
          .replace(/^\//, "")
          .replace(/\/$/, "");
        break;
      }
      case "min":
        schema.minLength = test.args.limit;
        break;
      case "max":
        schema.maxLength = test.args.limit;
        break;
      case "length":
        schema.minLength = schema.maxLength = test.args.limit;
        break;
      case "uri":
        schema.format = "uri";
        break;
    }
  });
 
  return schema;
};