           (:name body) => "Open"))
       
       (fact "reserved company slugs get a new suggested slug"
-        (let [payload  {:name "About" :description "x"}
+        (let [payload  {:name "About"}
               response (mock/api-request :post "/companies" {:body payload})
               body     (mock/body-from-response response)]
           (:status response) => 201


    (facts "slug"
      (fact "provided slug is taken causes 422"
        (let [payload  {:slug "open" :name "hello" :description "x"}
              response (mock/api-request :post "/companies" {:body payload})]
          (:status response) => 422))
       (fact "provided slug is reserved causes 422"
        (let [payload  {:slug "about" :name "hello" :description "x"}
              response (mock/api-request :post "/companies" {:body payload})]
          (:status response) => 422))
      (fact "provided slug does not follow slug format causes 422"
        (let [payload  {:slug "under_score" :name "hello" :description "x"}
              response (mock/api-request :post "/companies" {:body payload})]
          (:status response) => 422)))

    (facts "sections"
      (fact "unknown sections cause 422"
       (let [payload  {:name "hello" :description "x" :unknown-section {}}
              response (mock/api-request :post "/companies" {:body payload})]
         (:status response) => 422))
      (facts "known user supplied sections"

  ;; -------------------
  (facts "about creating companies"

    ; TODO POST with empty map causes NPE
    ; (fact "missing fields cause 422"
    ;   (let [payload  {}
    ;         response (mock/api-request :post "/companies" {:body payload})]
    ;     (:status response) => 422))

    (fact "superflous fields cause 422"
      (let [payload  {:bogus "xx" :name "hello"}
            response (mock/api-request :post "/companies" {:body payload})]
        (:status response) => 422))

    (fact "a company can be created with just a name"
      (let [payload  {:name "Hello World"}
            response (mock/api-request :post "/companies" {:body payload})
            body     (mock/body-from-response response)]
        (:status response) => 201
        (:slug body) => "hello-world"
        (:name body) => "Hello World"))

    (facts "about conflicting company slugs"
      
      (fact "used company slugs get a new suggested slug"
        (let [payload  {:name "Open"}
              response (mock/api-request :post "/companies" {:body payload})
              body     (mock/body-from-response response)]
          (:status response) => 201
