Skip to content

Commit

Permalink
Create endpoint update-layout
Browse files Browse the repository at this point in the history
  • Loading branch information
kauwai committed Sep 30, 2024
1 parent 289acac commit fc4e967
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 12 deletions.
2 changes: 1 addition & 1 deletion test/spread/project.clj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
(defproject house.jux/test.spread "2024.09.28"
(defproject house.jux/test.spread "2024.09.30"

:description "Support for highly expressive, two-dimensional tests represented as spreadsheets."
:url "https://github.com/klauswuestefeld/simple-clj/tree/master/test/spread"
Expand Down
18 changes: 14 additions & 4 deletions test/spread/src/house/jux__/test/spread__/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,16 @@
return { columns, rows };
}

async function updateTestLayout() {
const response = await fetch("/api/update-layout", {
method: "POST",
body: JSON.stringify({
filename: currentFilePath,
"spreadsheet-dimensions": getSpreadsheetDimensions(),
}),
});
}

async function saveSpreadsheetAndRunTests() {
indicateTestsRunning();
clearErrorHighlights();
Expand Down Expand Up @@ -603,10 +613,10 @@

const eventHandlers = {
onchange: saveSpreadsheetAndRunTests,
onresizecolumn: saveSpreadsheetAndRunTests,
onresizerow: saveSpreadsheetAndRunTests,
ondeleterow: saveSpreadsheetAndRunTests,
ondeletecolumn: saveSpreadsheetAndRunTests,
onresizecolumn: updateTestLayout,
onresizerow: updateTestLayout,
ondeleterow: updateTestLayout,
ondeletecolumn: updateTestLayout,
};

jspreadsheetObj = loadJSpreadsheet(spreadsheet, spreadsheetDOMElement, eventHandlers);
Expand Down
5 changes: 2 additions & 3 deletions test/spread/src/house/jux__/test/spread__/layout.clj
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,13 @@
(:require [clojure.java.io :as java.io]
[clojure.string :as string]))

(def file-suffix
".layout.edn")
(def file-suffix ".layout.edn")

(defn- layout-file? [filename]
(-> filename java.io/file .exists))

(defn- path->filename [path]
(str (string/replace path #".csv" "") file-suffix))
(string/replace path #".csv" file-suffix))

(defn layout-get [relative-path]
(let [filename (path->filename relative-path)]
Expand Down
18 changes: 14 additions & 4 deletions test/spread/src/house/jux__/test/spread__/server.clj
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,20 @@
(catch RuntimeException e
(throw (unpack-actual-exception-if-necessary e)))))

(defn- ->relative-path [filename]
(str spread/all-spreadsheets-folder filename))

(defn- update-layout
([relative-path spreadsheet-dimensions]
(layout/layout-save relative-path spreadsheet-dimensions))
([_endpoint _user {:keys [filename spreadsheet-dimensions]}]
(update-layout (->relative-path filename) spreadsheet-dimensions)))

(defn- save-and-run [endpoint user {:keys [filename spreadsheet-data spreadsheet-dimensions] :as params}]
(let [relative-path (str spread/all-spreadsheets-folder filename)]
(let [relative-path (->relative-path filename)]
(when filename
(csv/write! relative-path spreadsheet-data))
(layout/layout-save relative-path spreadsheet-dimensions)
(csv/write! relative-path spreadsheet-data)
(update-layout relative-path spreadsheet-dimensions))
(run-tests endpoint user params)))

(defn- accumulate-general-tests [acc file]
Expand All @@ -64,7 +73,7 @@
.exists) (conj (csv/read! specific-test)))))

(defn- csv-read [_endpoint _user {:keys [filename]}]
(let [relative-path (str spread/all-spreadsheets-folder filename)
(let [relative-path (->relative-path filename)
data (csv/read! relative-path)
dimensions (layout/layout-get relative-path)
{:keys [commands initial-results queries]} (spread/cells-info data)
Expand Down Expand Up @@ -125,6 +134,7 @@
(-> not-found
(api/wrap-api "/api/run" run-tests {:anonymous? true})
(api/wrap-api "/api/save-and-run" save-and-run {:anonymous? true})
(api/wrap-api "/api/update-layout" update-layout {:anonymous? true})
(api/wrap-api "/api/csv-read" csv-read {:anonymous? true})
(api/wrap-api "/api/get-test-tree" test-tree {:anonymous? true})
(wrap-single-request)
Expand Down

0 comments on commit fc4e967

Please sign in to comment.