diff --git a/vasl_templates/webapp/data/vehicles/american.json b/vasl_templates/webapp/data/vehicles/american.json
index 35d8558..98f21d1 100644
--- a/vasl_templates/webapp/data/vehicles/american.json
+++ b/vasl_templates/webapp/data/vehicles/american.json
@@ -145,13 +145,13 @@
},
{ "name": "M10 GMC",
"CS#": 7,
- "capabilities2": { "A": [ [5,"A4"], [6,5], "\u20201" ], "s": [ [5,5] ], "sP": 5 },
+ "capabilities2": { "A": [ [5,"A4E"], [6,"5E"], "\u20201" ], "s": [ [5,5] ], "sP": 5 },
"note_number": "23\u2020",
"notes": [ "A\u20201", "N", "Y" ]
},
{ "name": "M18 GMC",
"CS#": 6,
- "capabilities2": { "A": [ [5,4], [6,5], "\u20201" ], "s": [ [5,5] ], "sP": 5 },
+ "capabilities2": { "A": [ [5,"4E"], [6,"5E"], "\u20201" ], "s": [ [5,5] ], "sP": 5 },
"note_number": "24\u2020",
"notes": [ "A\u20201" ]
},
diff --git a/vasl_templates/webapp/tests/fixtures/data/vehicles/american.json b/vasl_templates/webapp/tests/fixtures/data/vehicles/american.json
new file mode 100644
index 0000000..1f475ac
--- /dev/null
+++ b/vasl_templates/webapp/tests/fixtures/data/vehicles/american.json
@@ -0,0 +1,16 @@
+[
+
+{ "name": "M10 GMC",
+ "CS#": 7,
+ "capabilities2": { "A": [ [5,"A4E"], [6,"5E"], "\u20201" ], "s": [ [5,5] ], "sP": 5 },
+ "note_number": "23\u2020",
+ "notes": [ "A\u20201", "N", "Y" ]
+},
+{ "name": "M18 GMC",
+ "CS#": 6,
+ "capabilities2": { "A": [ [5,"4E"], [6,"5E"], "\u20201" ], "s": [ [5,5] ], "sP": 5 },
+ "note_number": "24\u2020",
+ "notes": [ "A\u20201" ]
+}
+
+]
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1940.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1940.txt
index da2b6ab..7c3c3b1 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1940.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1940.txt
@@ -26,8 +26,8 @@ T1E3 n/a yes CS 5 (brew up) WP7 s5
Sherman Crab n/a yes CS 5 (brew up) WP7[J4+]†[2] s5[J4+] sM4 sM4 20† G R†1 BB†2
POA-CWS-H1 n/a yes CS 6 sM8 sM8 21† P
M26 n/a yes CS 6 A7 A7 22† P
-M10 GMC n/a yes CS 7 A5[A4]6[5]†[1] s5[5] sP5 sP5 23† A†1 N Y
-M18 GMC n/a yes CS 6 A5[4]6[5]†[1] s5[5] sP5 sP5 24† A†1
+M10 GMC n/a yes CS 7 A5[A4E]6[5E]†[1] s5[5] sP5 sP5 23† A†1 N Y
+M18 GMC n/a yes CS 6 A5[4E]6[5E]†[1] s5[5] sP5 sP5 24† A†1
M36 GMC n/a yes CS 7 A5[5] sP5 sP5 25† P
M36B1 GMC n/a yes CS 7 A5 sP5 A5 sP5 26 P
M2 n/a yes CS 4 n/a n/a 27†[1] E† H I† N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1941.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1941.txt
index e930d37..e1116da 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1941.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1941.txt
@@ -26,8 +26,8 @@ T1E3 n/a yes CS 5 (brew up) WP7 s5
Sherman Crab n/a yes CS 5 (brew up) WP7[J4+]†[2] s5[J4+] sM4 sM4 20† G R†1 BB†2
POA-CWS-H1 n/a yes CS 6 sM8 sM8 21† P
M26 n/a yes CS 6 A7 A7 22† P
-M10 GMC n/a yes CS 7 A5[A4]6[5]†[1] s5[5] sP5 sP5 23† A†1 N Y
-M18 GMC n/a yes CS 6 A5[4]6[5]†[1] s5[5] sP5 sP5 24† A†1
+M10 GMC n/a yes CS 7 A5[A4E]6[5E]†[1] s5[5] sP5 sP5 23† A†1 N Y
+M18 GMC n/a yes CS 6 A5[4E]6[5E]†[1] s5[5] sP5 sP5 24† A†1
M36 GMC n/a yes CS 7 A5[5] sP5 sP5 25† P
M36B1 GMC n/a yes CS 7 A5 sP5 A5 sP5 26 P
M2 n/a yes CS 4 n/a n/a 27†[1] E† H I† N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1942.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1942.txt
index b0f7a2d..4687cda 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1942.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1942.txt
@@ -26,8 +26,8 @@ T1E3 n/a yes CS 5 (brew up) WP7 s5
Sherman Crab n/a yes CS 5 (brew up) WP7[J4+]†[2] s5[J4+] sM4 sM4 20† G R†1 BB†2
POA-CWS-H1 n/a yes CS 6 sM8 sM8 21† P
M26 n/a yes CS 6 A7 A7 22† P
-M10 GMC n/a yes CS 7 A5[A4]6[5]†[1] s5[5] sP5 sP5 23† A†1 N Y
-M18 GMC n/a yes CS 6 A5[4]6[5]†[1] s5[5] sP5 sP5 24† A†1
+M10 GMC n/a yes CS 7 A5[A4E]6[5E]†[1] s5[5] sP5 sP5 23† A†1 N Y
+M18 GMC n/a yes CS 6 A5[4E]6[5E]†[1] s5[5] sP5 sP5 24† A†1
M36 GMC n/a yes CS 7 A5[5] sP5 sP5 25† P
M36B1 GMC n/a yes CS 7 A5 sP5 A5 sP5 26 P
M2 n/a yes CS 4 n/a n/a 27†[1] E† H I† N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1943.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1943.txt
index bea9071..89db13c 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1943.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1943.txt
@@ -26,8 +26,8 @@ T1E3 n/a yes CS 5 (brew up) WP7 s5
Sherman Crab n/a yes CS 5 (brew up) WP7[J4+]†[2] s5[J4+] sM4 sM4 20† G R†1 BB†2
POA-CWS-H1 n/a yes CS 6 sM8 sM8 21† P
M26 n/a yes CS 6 A7 A7 22† P
-M10 GMC n/a yes CS 7 A5[A4]6[5]†[1] s5[5] sP5 sP5 23† A†1 N Y
-M18 GMC n/a yes CS 6 A5[4]6[5]†[1] s5[5] sP5 sP5 24† A†1
+M10 GMC n/a yes CS 7 A5[A4E]6[5E]†[1] s5[5] sP5 sP5 23† A†1 N Y
+M18 GMC n/a yes CS 6 A5[4E]6[5E]†[1] s5[5] sP5 sP5 24† A†1
M36 GMC n/a yes CS 7 A5[5] sP5 sP5 25† P
M36B1 GMC n/a yes CS 7 A5 sP5 A5 sP5 26 P
M2 n/a yes CS 4 n/a n/a 27†[1] E† H I† N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1944.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1944.txt
index 5815aa9..848238d 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1944.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1944.txt
@@ -26,8 +26,8 @@ T1E3 n/a yes CS 5 (brew up) WP7 s5
Sherman Crab n/a yes CS 5 (brew up) WP7[J4+]†[2] s5[J4+] sM4 sM4 20† G R†1 BB†2
POA-CWS-H1 n/a yes CS 6 sM8 sM8 21† P
M26 n/a yes CS 6 A7 A7 22† P
-M10 GMC n/a yes CS 7 A5[A4]6[5]†[1] s5[5] sP5 sP5 23† A†1 N Y
-M18 GMC n/a yes CS 6 A5[4]6[5]†[1] s5[5] sP5 A5†[1] sP5 24† A†1
+M10 GMC n/a yes CS 7 A5[A4E]6[5E]†[1] s5[5] sP5 sP5 23† A†1 N Y
+M18 GMC n/a yes CS 6 A5[4E]6[5E]†[1] s5[5] sP5 A5†[1] sP5 24† A†1
M36 GMC n/a yes CS 7 A5[5] sP5 sP5 25† P
M36B1 GMC n/a yes CS 7 A5 sP5 A5 sP5 26 P
M2 n/a yes CS 4 n/a n/a 27†[1] E† H I† N
diff --git a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1945.txt b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1945.txt
index 241b470..eb6c09c 100644
--- a/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1945.txt
+++ b/vasl_templates/webapp/tests/fixtures/vo-reports/vehicles/american/1945.txt
@@ -26,8 +26,8 @@ T1E3 n/a yes CS 5 (brew up) WP7 s5
Sherman Crab n/a yes CS 5 (brew up) WP7[J4+]†[2] s5[J4+] sM4 WP7†[2] s5 sM4 20† G R†1 BB†2
POA-CWS-H1 n/a yes CS 6 sM8 sM8 21† P
M26 n/a yes CS 6 A7 A7 22† P
-M10 GMC n/a yes CS 7 A5[A4]6[5]†[1] s5[5] sP5 A6†[1] s5 sP5 23† A†1 N Y
-M18 GMC n/a yes CS 6 A5[4]6[5]†[1] s5[5] sP5 A6†[1] s5 sP5 24† A†1
+M10 GMC n/a yes CS 7 A5[A4E]6[5E]†[1] s5[5] sP5 A6†[1] s5 sP5 23† A†1 N Y
+M18 GMC n/a yes CS 6 A5[4E]6[5E]†[1] s5[5] sP5 A6†[1] s5 sP5 24† A†1
M36 GMC n/a yes CS 7 A5[5] sP5 A5 sP5 25† P
M36B1 GMC n/a yes CS 7 A5 sP5 A5 sP5 26 P
M2 n/a yes CS 4 n/a n/a 27†[1] E† H I† N
diff --git a/vasl_templates/webapp/tests/test_capabilities.py b/vasl_templates/webapp/tests/test_capabilities.py
index be144c4..1ac447a 100644
--- a/vasl_templates/webapp/tests/test_capabilities.py
+++ b/vasl_templates/webapp/tests/test_capabilities.py
@@ -111,6 +111,40 @@ def test_scenario_theater( webapp, webdriver ):
_check_snippet( "ETO", "01/01/1940", "ordnance", '"NT" "H7" "WP8" "s7"' )
_check_snippet( "PTO", "01/01/1940", "ordnance", '"NT" "C7\u20201" "H7" "WP8" "s7"' )
+ # NOTE: We do a bit of hackery for the APCR specification for the M10 GMC and M18 GMC,
+ # to flag them as ETO-only, so we make sure everything's working properly here.
+
+ # M10 GMC: A(E)5(A4)/6(5)†1
+ new_scenario()
+ load_scenario_params( {
+ "scenario": {
+ "PLAYER_1": "american",
+ },
+ "ob1": {
+ "OB_VEHICLES_1": [ "M10 GMC" ],
+ }
+ } )
+ _check_snippet( "ETO", "07/31/1944", "vehicles", '"sP5"' )
+ _check_snippet( "ETO", "08/01/1944", "vehicles", '"A5\u20201" "sP5"' )
+ _check_snippet( "ETO", "01/01/1945", "vehicles", '"A6\u20201" "s5" "sP5"' )
+ _check_snippet( "other", "01/01/1945", "vehicles", '"s5" "sP5"' )
+
+ # M18 GMC: A(E)5(4)/6(5)†1
+ new_scenario()
+ load_scenario_params( {
+ "scenario": {
+ "PLAYER_1": "american",
+ },
+ "ob1": {
+ "OB_VEHICLES_1": [ "M18 GMC" ],
+ }
+ } )
+ _check_snippet( "ETO", "12/31/1943", "vehicles", '"sP5"' )
+ _check_snippet( "ETO", "01/01/1944", "vehicles", '"A5\u20201" "sP5"' )
+ _check_snippet( "ETO", "01/01/1945", "vehicles", '"A6\u20201" "s5" "sP5"' )
+ _check_snippet( "other", "01/01/1945", "vehicles", '"s5" "sP5"' )
+
+
# ---------------------------------------------------------------------
def _check_snippet( scenario_theater, scenario_date, vo_type, expected ):