diff --git a/packages/slate-schema/test/validations/children/max/invalid-match.js b/packages/slate-schema/test/validations/children/max/invalid-match.js
new file mode 100644
index 000000000..2e593d46c
--- /dev/null
+++ b/packages/slate-schema/test/validations/children/max/invalid-match.js
@@ -0,0 +1,29 @@
+/** @jsx jsx */
+
+import { jsx } from 'slate-hyperscript'
+
+export const schema = [
+ {
+ for: 'node',
+ match: { a: true },
+ validate: {
+ children: [{ match: 'text', max: 1 }],
+ },
+ },
+]
+
+export const input = (
+
+
+ one
+
+
+)
+
+export const output = (
+
+
+
+
+
+)
diff --git a/packages/slate-schema/test/validations/children/min/valid-second-optional-exists.js b/packages/slate-schema/test/validations/children/min/valid-second-optional-exists.js
new file mode 100644
index 000000000..cfaf0806a
--- /dev/null
+++ b/packages/slate-schema/test/validations/children/min/valid-second-optional-exists.js
@@ -0,0 +1,27 @@
+/** @jsx jsx */
+
+import { jsx } from 'slate-hyperscript'
+
+export const schema = [
+ {
+ for: 'node',
+ match: { a: true },
+ validate: {
+ children: [
+ { match: { b: true }, min: 1, max: 1 },
+ { match: { c: true }, min: 0 },
+ ],
+ },
+ },
+]
+
+export const input = (
+
+
+ one
+ two
+
+
+)
+
+export const output = input
diff --git a/packages/slate-schema/test/validations/children/min/valid-second-optional-missing.js b/packages/slate-schema/test/validations/children/min/valid-second-optional-missing.js
new file mode 100644
index 000000000..36dc0212b
--- /dev/null
+++ b/packages/slate-schema/test/validations/children/min/valid-second-optional-missing.js
@@ -0,0 +1,26 @@
+/** @jsx jsx */
+
+import { jsx } from 'slate-hyperscript'
+
+export const schema = [
+ {
+ for: 'node',
+ match: { a: true },
+ validate: {
+ children: [
+ { match: { b: true }, min: 1, max: 1 },
+ { match: { c: true }, min: 0 },
+ ],
+ },
+ },
+]
+
+export const input = (
+
+
+ one
+
+
+)
+
+export const output = input