emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/autothemer aa63d8cd5e 02/29: Add github test workflow and


From: ELPA Syncer
Subject: [nongnu] elpa/autothemer aa63d8cd5e 02/29: Add github test workflow and tests. Fail expected due to display type.
Date: Sun, 28 Aug 2022 22:58:36 -0400 (EDT)

branch: elpa/autothemer
commit aa63d8cd5e005a4bb459e5e5c7cd35ac38410d1a
Author: Jason Milkins <jasonm23@gmail.com>
Commit: Jason Milkins <jasonm23@gmail.com>

    Add github test workflow and tests. Fail expected due to display type.
---
 .github/workflows/test.yml |  36 ++++++++++++
 bin/test                   |  39 +++++++++++++
 tests/theme-example.el     | 139 +++++++++++++++++++++++++++++++++------------
 3 files changed, 177 insertions(+), 37 deletions(-)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000000..0227237ab0
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,36 @@
+on:
+  push:
+  pull_request:
+
+jobs:
+  test:
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        emacs_version:
+          - 24.1
+          - 24.2
+          - 24.3
+          - 24.4
+          - 24.5
+          - 25.1
+          - 25.2
+          - 25.3
+          - 26.1
+          - 26.2
+          - 26.3
+          - 27.1
+          - 27.2
+          - 28.1
+          - snapshot
+      fail-fast: false
+    steps:
+    - uses: actions/checkout@v3
+    - name: Set up Emacs
+      uses: purcell/setup-emacs@v3.0
+      with:
+        version: ${{ matrix.emacs_version }}
+
+    - name: Test
+      run: |
+        bin/test
diff --git a/bin/test b/bin/test
new file mode 100755
index 0000000000..2f745dbf69
--- /dev/null
+++ b/bin/test
@@ -0,0 +1,39 @@
+#!/bin/sh
+dash="$(dirname "$(find ~/.emacs.d | grep "/dash.el$" | tail -1)")"
+
+EMACS="${EMACS:=emacs}"
+
+cat <<INFO
+════════════════════════════════════════════════════════════════════════════════
+    _         _      _____ _
+   / \  _   _| |_ __|_   _| |__   ___ _ __ ___   ___ _ __
+  / _ \| | | | __/ _ \| | | '_ \ / _ \ '_ ' _ \ / _ \ '__|
+ / ___ \ |_| | || (_) | | | | | |  __/ | | | | |  __/ |
+/_/   \_\__,_|\__\___/|_| |_| |_|\___|_| |_| |_|\___|_|
+ _____         _
+|_   _|__  ___| |_ ___
+  | |/ _ \/ __| __/ __|
+  | |  __/\__ \ |_\__ \\
+  |_|\___||___/\__|___/
+
+────────────────────────────────────────────────────────────────────────────────
+Required packages present:
+Dash: $dash
+════════════════════════════════════════════════════════════════════════════════
+$("$EMACS" --version)
+════════════════════════════════════════════════════════════════════════════════
+INFO
+
+"$EMACS" --batch \
+  -eval "(add-to-list 'load-path \"${dash}\")" \
+  -eval "(add-to-list 'load-path \".\")" \
+  -l ert \
+  -l dash \
+  -l ./autothemer.el \
+  -l ./tests/theme-example.el \
+  --eval "(ert-run-tests-batch-and-exit)"
+exitcode=$?
+
+echo "
+════════════════════════════════════════════════════════════════════════════════"
+exit ${exitcode}
diff --git a/tests/theme-example.el b/tests/theme-example.el
index 5699122967..0462131ba3 100644
--- a/tests/theme-example.el
+++ b/tests/theme-example.el
@@ -2,42 +2,107 @@
 
 ;;; Code:
 
-(load-file "autothemer.el")
-
-(autothemer-deftheme
- theme-example
- "Autothemer example..."
-
-  ;; Specify the color classes used by the theme
-  ((((class color) (min-colors #xFFFFFF))
-    ((class color) (min-colors #xFF)))
-
-   ;; Specify the color palette for each of the classes above.
-   (example-red    "#781210" "#FF0000")
-   (example-green  "#22881F" "#00D700")
-   (example-blue   "#212288" "#0000FF")
-   (example-purple "#812FFF" "#Af00FF")
-   (example-yellow "#EFFE00" "#FFFF00")
-   (example-orange "#E06500" "#FF6600")
-   (example-cyan   "#22DDFF" "#00FFFF"))
-
-  ;; specifications for Emacs faces.
-  ((button (:underline t :weight 'bold :foreground example-yellow))
-   (error  (:foreground example-red)))
-
-  ;; Forms after the face specifications are evaluated.
-  ;; (palette vars can be used, read below for details.)
-  (custom-theme-set-variables
-   'theme-example
-   `(ansi-color-names-vector
-     [,example-red
-      ,example-green
-      ,example-blue
-      ,example-purple
-      ,example-yellow
-      ,example-orange
-      ,example-cyan])))
-
-;; Eval buffer and use as a test sandox.
+(require 'autothemer)
+
+(progn "Test autothemer-deftheme"
+  (autothemer-deftheme theme-example
+   "Autothemer example..."
+
+    ;; Specify the color classes used by the theme
+    ((((class color) (min-colors #xFFFFFF))
+      ((class color) (min-colors #xFF)))
+
+     ;; Specify the color palette for each of the classes above.
+     (example-red    "#781210" "#FF0000")
+     (example-green  "#22881F" "#00D700")
+     (example-blue   "#212288" "#0000FF")
+     (example-purple "#812FFF" "#Af00FF")
+     (example-yellow "#EFFE00" "#FFFF00")
+     (example-orange "#E06500" "#FF6600")
+     (example-cyan   "#22DDFF" "#00FFFF"))
+
+    ;; specifications for Emacs faces.
+    ((button (:underline t :weight 'bold :foreground example-yellow))
+     (error  (:foreground example-red)))
+
+    ;; Forms after the face specifications are evaluated.
+    ;; (palette vars can be used, read below for details.)
+    (custom-theme-set-variables
+     'theme-example
+     `(ansi-color-names-vector
+       [,example-red
+        ,example-green
+        ,example-blue
+        ,example-purple
+        ,example-yellow
+        ,example-orange
+        ,example-cyan])))
+
+  (ert-deftest current-theme ()
+    "Test current theme is available."
+    (should (not (null
+                  autothemer--current-theme))))
+
+  (ert-deftest theme-has-colors ()
+    "Check theme has colors."
+    (should (eql 7 (length (autothemer--theme-colors
+                            autothemer--current-theme)))))
+
+  (ert-deftest theme-has-face-specs ()
+    "Check theme has face specs."
+    (should (eql 2 (length (autothemer--theme-defined-faces
+                            autothemer--current-theme)))))
+
+  (ert-deftest color-value ()
+    "Check color value."
+    (should (string= "#781210"
+                     (autothemer--color-value
+                      (car (autothemer--theme-colors
+                            autothemer--current-theme))))))
+
+  (ert-deftest color-name ()
+    "Check color name."
+    (should (string= "example-red"
+                     (autothemer--color-name
+                      (car (autothemer--theme-colors
+                            autothemer--current-theme))))))
+
+  (ert-deftest spec-name ()
+    "Check spec name."
+    (should (equal 'button
+                      (car (autothemer--theme-defined-faces
+                                  autothemer--current-theme)))))
+
+  (ert-deftest theme-has-description ()
+    "Check theme description."
+    (should (string=
+             "Autothemer example..."
+             (autothemer--theme-description
+              autothemer--current-theme))))
+
+  (ert-deftest theme-has-name ()
+    "Check theme name."
+    (should (string=
+             "theme-example"
+             (autothemer--theme-name
+              autothemer--current-theme))))
+
+  (ert-deftest let-palette ()
+    "Check autothemer-let-palette"
+    (should (string=
+             "#781210"
+             (autothemer-let-palette example-red)))))
+
+;;; Example theme in memory:
+'(#s(autothemer--theme
+     (#s(autothemer--color example-red "#781210")
+        #s(autothemer--color example-green "#22881F")
+        #s(autothemer--color example-blue "#212288")
+        #s(autothemer--color example-purple "#812FFF")
+        #s(autothemer--color example-yellow "#EFFE00")
+        #s(autothemer--color example-orange "#E06500")
+        #s(autothemer--color example-cyan "#22DDFF"))
+     (button error)
+     "theme-example" "Autothemer example..."))
 
 ;;; theme-example.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]