(ns metabase.util.random
  (:require
   [clojure.string :as str]
   [metabase.util :as u]))
(defn- random-uppercase-letter []
  (char (+ (int \A) (rand-int 26))))

Generate a random string of 20 uppercase letters.

(defn random-name
  []
  (str/join (repeatedly 20 random-uppercase-letter)))

Generate a random hash of 44 characters to simulate a base64 encoded sha. Eg, "y6dkn65bbhRZkXj9Yyp0awCKi3iy/xeVIGa/eFfsszM="

(defn random-hash
  []
  (let [chars (concat (map char (range (int \a) (+ (int \a) 25)))
                      (map char (range (int \A) (+ (int \A) 25)))
                      (range 10)
                      [\/ \+])]
    (str (apply str (repeatedly 43 #(rand-nth chars))) "=")))

Generate a random email address.

(defn random-email
  []
  (str (u/lower-case-en (random-name)) "@metabase.com"))