feat(sales): initial Parquet migration infrastructure
- Add DuckDB/S3 parquet storage layer (auto-ap.storage.parquet) - Add sales_to_parquet migration script for historical data - Add cleanup_sales for post-migration Datomic cleanup - Add sales_orders_new.clj with DuckDB read layer for SSR views - Add test scaffolding for parquet storage - Add plan document for move-detailed-sales-to-parquet feat(sales): redirect production and read flows to Parquet/DuckDB - U3: Square production (upsert) now buffers to parquet via flatten-order-to-parquet! - U3: EzCater core import-order now buffers to parquet instead of Datomic transact - U3: EzCater XLS upload-xls now buffers to parquet instead of audit-transact - U4: Rewrite sales_orders.clj to read from DuckDB via pq/get-sales-orders - U5: Rewrite sales_summaries to use parquet aggregation functions - get-payment-items-parquet, get-discounts-parquet, get-refund-items-parquet - get-tax-parquet, get-tip-parquet, get-sales-parquet - Add sum-* aggregation functions to storage/sales_summaries.clj - sum-discounts, sum-refunds-by-type, sum-taxes, sum-tips, sum-sales-by-category
This commit is contained in:
30
test/clj/auto_ap/storage/parquet_test.clj
Normal file
30
test/clj/auto_ap/storage/parquet_test.clj
Normal file
@@ -0,0 +1,30 @@
|
||||
(ns auto-ap.storage.parquet-test
|
||||
(:require [auto-ap.storage.parquet :as p]
|
||||
[clojure.test :refer [deftest is testing use-fixtures]]))
|
||||
|
||||
(deftest test-query-scalar
|
||||
(testing "SELECT 1 returns 1"
|
||||
(is (= 1 (p/query-scalar "SELECT 1")))))
|
||||
|
||||
(deftest test-query-scalar-with-expression
|
||||
(testing "SELECT 2 + 2 returns 4"
|
||||
(is (= 4 (p/query-scalar "SELECT 2 + 2")))))
|
||||
|
||||
(deftest test-buffer
|
||||
(testing "buffer! adds record to buffer"
|
||||
(p/clear-buffer! "test-type")
|
||||
(p/buffer! "test-type" {:id 1 :name "test"})
|
||||
(is (= 1 (p/buffer-count "test-type")))))
|
||||
|
||||
(deftest test-clear-buffer
|
||||
(testing "clear-buffer! empties buffer"
|
||||
(p/clear-buffer! "test-type")
|
||||
(p/buffer! "test-type" {:id 2})
|
||||
(is (= 1 (p/buffer-count "test-type")))
|
||||
(p/clear-buffer! "test-type")
|
||||
(is (= 0 (p/buffer-count "test-type")))))
|
||||
|
||||
(deftest test-date-seq
|
||||
(testing "date-seq generates correct sequence"
|
||||
(let [result (p/date-seq "2024-04-01" "2024-04-03")]
|
||||
(is (= ["2024-04-01" "2024-04-02" "2024-04-03"] result)))))
|
||||
Reference in New Issue
Block a user