aboutsummaryrefslogtreecommitdiff
path: root/src/debug/Test.tsx
diff options
context:
space:
mode:
authorTyler Schicke <tyler_schicke@brown.edu>2019-05-07 16:29:02 -0400
committerTyler Schicke <tyler_schicke@brown.edu>2019-05-07 16:29:02 -0400
commit14c776b6d30e0bc0d5b3712f28e4b9f1170eae3b (patch)
tree5255d8cce8a72a5b09cc1ad58661e2176295467a /src/debug/Test.tsx
parente19fdbba4cf672aee5bfb59b91b6162431d146d3 (diff)
parent26141a697ae52a7edf3cc6845ce2153111f8860e (diff)
Merge branch 'master' of github-tsch-brown:browngraphicslab/Dash-Web into new_search
Diffstat (limited to 'src/debug/Test.tsx')
-rw-r--r--src/debug/Test.tsx91
1 files changed, 35 insertions, 56 deletions
diff --git a/src/debug/Test.tsx b/src/debug/Test.tsx
index 7d72a1ba0..57221aa39 100644
--- a/src/debug/Test.tsx
+++ b/src/debug/Test.tsx
@@ -1,48 +1,41 @@
import * as React from 'react';
import * as ReactDOM from 'react-dom';
-import { serialize, deserialize, map } from 'serializr';
-import { URLField, Doc, createSchema, makeInterface, makeStrictInterface, List, ListSpec } from '../fields/NewDoc';
import { SerializationHelper } from '../client/util/SerializationHelper';
-import { Search } from '../server/Search';
-import { restProperty } from 'babel-types';
-import * as rp from 'request-promise';
+import { createSchema, makeInterface, makeStrictInterface, listSpec } from '../new_fields/Schema';
+import { ImageField } from '../new_fields/URLField';
+import { Doc } from '../new_fields/Doc';
+import { List } from '../new_fields/List';
+
const schema1 = createSchema({
hello: "number",
test: "string",
fields: "boolean",
- url: URLField,
+ url: ImageField,
testDoc: Doc
});
-const TestDoc = makeInterface(schema1);
-type TestDoc = makeInterface<typeof schema1>;
+type TestDoc = makeInterface<[typeof schema1]>;
+const TestDoc: (doc?: Doc) => TestDoc = makeInterface(schema1);
const schema2 = createSchema({
- hello: URLField,
+ hello: ImageField,
test: "boolean",
- fields: { List: "number" } as ListSpec<number>,
+ fields: listSpec("number"),
url: "number",
- testDoc: URLField
+ testDoc: ImageField
});
const Test2Doc = makeStrictInterface(schema2);
type Test2Doc = makeStrictInterface<typeof schema2>;
-const schema3 = createSchema({
- test: "boolean",
-});
-
-const Test3Doc = makeStrictInterface(schema3);
-type Test3Doc = makeStrictInterface<typeof schema3>;
-
const assert = (bool: boolean) => {
if (!bool) throw new Error();
};
class Test extends React.Component {
onClick = () => {
- const url = new URLField(new URL("http://google.com"));
+ const url = new ImageField(new URL("http://google.com"));
const doc = new Doc();
const doc2 = new Doc();
doc.hello = 5;
@@ -52,48 +45,34 @@ class Test extends React.Component {
//doc.testDoc = doc2;
- // const test1: TestDoc = TestDoc(doc);
- // const test2: Test2Doc = Test2Doc(doc);
- // assert(test1.hello === 5);
- // assert(test1.fields === undefined);
- // assert(test1.test === "hello doc");
- // assert(test1.url === url);
- // //assert(test1.testDoc === doc2);
- // test1.myField = 20;
- // assert(test1.myField === 20);
-
- // assert(test2.hello === undefined);
- // // assert(test2.fields === "test");
- // assert(test2.test === undefined);
- // assert(test2.url === undefined);
- // assert(test2.testDoc === undefined);
- // test2.url = 35;
- // assert(test2.url === 35);
- // const l = new List<number>();
- // //TODO push, and other array functions don't go through the proxy
- // l.push(1);
- // //TODO currently length, and any other string fields will get serialized
- // l.length = 3;
- // l[2] = 5;
- // console.log(l.slice());
- // console.log(SerializationHelper.Serialize(l));
- }
+ const test1: TestDoc = TestDoc(doc);
+ assert(test1.hello === 5);
+ assert(test1.fields === undefined);
+ assert(test1.test === "hello doc");
+ assert(test1.url === url);
+ assert(test1.testDoc === doc2);
+ test1.myField = 20;
+ assert(test1.myField === 20);
- onEnter = async (e: any) => {
- var key = e.keyCode || e.which;
- if (key === 13) {
- var query = e.target.value;
- await rp.get('http://localhost:1050/search', {
- qs: {
- query
- }
- });
- }
+ const test2: Test2Doc = Test2Doc(doc);
+ assert(test2.hello === undefined);
+ // assert(test2.fields === "test");
+ assert(test2.test === undefined);
+ assert(test2.url === undefined);
+ assert(test2.testDoc === undefined);
+ test2.url = 35;
+ assert(test2.url === 35);
+ const l = new List<Doc>();
+ //TODO push, and other array functions don't go through the proxy
+ l.push(doc2);
+ //TODO currently length, and any other string fields will get serialized
+ doc.list = l;
+ console.log(l.slice());
}
render() {
return <div><button onClick={this.onClick}>Click me</button>
- <input onKeyPress={this.onEnter}></input>
+ {/* <input onKeyPress={this.onEnter}></input> */}
</div>;
}
}