diff --git a/extra/html/components/components-tests.factor b/extra/html/components/components-tests.factor
new file mode 100644
index 0000000000..6ecd2b0fa6
--- /dev/null
+++ b/extra/html/components/components-tests.factor
@@ -0,0 +1,145 @@
+IN: html.components.tests
+USING: html.components tools.test kernel io.streams.string
+io.streams.null accessors ;
+
+[ ] [ blank-values ] unit-test
+
+[ ] [ 3 "hi" set-value ] unit-test
+
+[ 3 ] [ "hi" value ] unit-test
+
+TUPLE: color red green blue ;
+
+[ ] [ 1 2 3 color boa from-tuple ] unit-test
+
+[ 1 ] [ "red" value ] unit-test
+
+[ ] [ "jimmy" "red" set-value ] unit-test
+
+[ "123.5" ] [ 123.5 object>string ] unit-test
+
+[ "jimmy" ] [
+ [
+ "red" label render
+ ] with-string-writer
+] unit-test
+
+[ ] [ "" "red" set-value ] unit-test
+
+[ "<jimmy>" ] [
+ [
+ "red" label render
+ ] with-string-writer
+] unit-test
+
+[ "" ] [
+ [
+ "red" hidden render
+ ] with-string-writer
+] unit-test
+
+[ ] [ "'jimmy'" "red" set-value ] unit-test
+
+[ "" ] [
+ [
+ "red" 5 >>size render
+ ] with-string-writer
+] unit-test
+
+[ "" ] [
+ [
+ "red" 5 >>size render
+ ] with-string-writer
+] unit-test
+
+[ ] [
+ [
+ "green"