Adding Group
This commit is contained in:
315
Test/Skeleton/init.test.js
Normal file
315
Test/Skeleton/init.test.js
Normal file
@@ -0,0 +1,315 @@
|
||||
window.testSuites.push( class testInit {
|
||||
|
||||
ObjectAsStateField() {
|
||||
class File extends Shadow {
|
||||
$form
|
||||
|
||||
constructor(...params) {
|
||||
super(...params)
|
||||
}
|
||||
}
|
||||
|
||||
window.register(File, "file-el")
|
||||
let form = {data: "asdf"}
|
||||
const el = window.File(form)
|
||||
if(!(el.form === form)) {
|
||||
return `State field does not match object passed in!`
|
||||
}
|
||||
}
|
||||
|
||||
MultiParams() {
|
||||
class File2 extends Shadow {
|
||||
$form
|
||||
$tag
|
||||
|
||||
constructor(...params) {
|
||||
super(...params)
|
||||
}
|
||||
}
|
||||
|
||||
window.register(File2, "file2-el")
|
||||
let form = {data: "asdf"}
|
||||
const el = window.File2(form, "tag")
|
||||
if(!(el.form === form)) {
|
||||
return `Form field does not match object passed in!`
|
||||
}
|
||||
if(!(el.tag === "tag")) {
|
||||
return `Tag field does not match object passed in!`
|
||||
}
|
||||
}
|
||||
|
||||
onlyGetFieldsNotUsing$() {
|
||||
class File5 extends Shadow {
|
||||
$form
|
||||
$tag
|
||||
|
||||
constructor(...params) {
|
||||
super(...params)
|
||||
}
|
||||
}
|
||||
|
||||
window.register(File5, "file5-el")
|
||||
let form = {data: "asdf"}
|
||||
const el = window.File5(form, "tag")
|
||||
if(el.$tag !== undefined) {
|
||||
return "Got field the wrong way!"
|
||||
}
|
||||
}
|
||||
|
||||
ChangeAttrChangesField() {
|
||||
class File3 extends Shadow {
|
||||
$form
|
||||
$tag
|
||||
|
||||
constructor(...params) {
|
||||
super(...params)
|
||||
}
|
||||
}
|
||||
|
||||
window.register(File3, "file3-el")
|
||||
let form = {data: "asdf"}
|
||||
const el = window.File3(form, "tag")
|
||||
el.setAttribute("tag", "asdf")
|
||||
if(el.tag !== "asdf") {
|
||||
return "Field did not change!"
|
||||
}
|
||||
}
|
||||
|
||||
ChangeFieldChangesAttr() {
|
||||
class File4 extends Shadow {
|
||||
$form
|
||||
$tag
|
||||
|
||||
constructor(...params) {
|
||||
super(...params)
|
||||
}
|
||||
}
|
||||
|
||||
window.register(File4, "file4-el")
|
||||
let form = {data: "asdf"}
|
||||
const el = window.File4(form, "tag")
|
||||
el.tag = "asdf"
|
||||
if(el.getAttribute("tag") !== "asdf") {
|
||||
return "Attribute did not change!"
|
||||
}
|
||||
}
|
||||
|
||||
ConstructorCanUseState() {
|
||||
class File7 extends Shadow {
|
||||
$form = {data: "asdf"}
|
||||
extra
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
this.extra = this.form
|
||||
}
|
||||
}
|
||||
|
||||
window.register(File7, "file7-el")
|
||||
const el = window.File7()
|
||||
if(el.extra === undefined) {
|
||||
return `Constructor could not access state`
|
||||
}
|
||||
}
|
||||
|
||||
DefaultStateFieldWorks() {
|
||||
class File6 extends Shadow {
|
||||
$form = {data: "asdf"}
|
||||
}
|
||||
|
||||
window.register(File6, "file6-el")
|
||||
const el = window.File6()
|
||||
if(el.form === undefined) {
|
||||
return `Default value did not work`
|
||||
}
|
||||
}
|
||||
|
||||
// this needs to be fixed
|
||||
// CannotAddUndefinedProperties() {
|
||||
// register(class File extends Shadow {
|
||||
|
||||
// render = () => {
|
||||
// p("boi")
|
||||
// }
|
||||
|
||||
// constructor() {
|
||||
// super()
|
||||
// this.hey = "unallowed"
|
||||
// }
|
||||
// }, randomName("file"))
|
||||
|
||||
// try {
|
||||
// const file = File()
|
||||
// return "Did not throw error!"
|
||||
// } catch(e) {
|
||||
// if(!e.message.includes("Extensible")) {
|
||||
// throw e
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
CannotAddUndefinedPropertiesAfterConstructor() {
|
||||
register(class File extends Shadow {
|
||||
|
||||
render = () => {
|
||||
p("boi")
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
}, randomName("file"))
|
||||
|
||||
try {
|
||||
const file = File()
|
||||
file.hey = "unallowed"
|
||||
return "Did not throw error!"
|
||||
} catch(e) {
|
||||
if(!e.message.includes("extensible")) {
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CannotAddUndefinedPropertiesAfterDefaultConstructor() {
|
||||
register(class File extends Shadow {
|
||||
|
||||
render = () => {
|
||||
p("boi")
|
||||
}
|
||||
}, randomName("file"))
|
||||
|
||||
try {
|
||||
const file = File()
|
||||
file.hey = "unallowed"
|
||||
return "Did not throw error!"
|
||||
} catch(e) {
|
||||
if(!e.message.includes("extensible")) {
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
NonStateFieldsGetSet() {
|
||||
register(class File extends Shadow {
|
||||
nonStateField
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
}, randomName("file"))
|
||||
|
||||
const file = File("asd")
|
||||
if(!(file.nonStateField === "asd")) {
|
||||
return "Did not set field!"
|
||||
}
|
||||
}
|
||||
|
||||
AllFieldsMustBeSet() {
|
||||
register(class File extends Shadow {
|
||||
$field1
|
||||
$field2
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
}
|
||||
}, randomName("file"))
|
||||
|
||||
try {
|
||||
const file = File("asd")
|
||||
console.log(file.field1, file.field2)
|
||||
return "No error thrown"
|
||||
} catch(e) {
|
||||
if(!e.message.includes("field2\" must be initialized")) {
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ErrorIfNotObservedObject() {
|
||||
window.register(class ChildSpace extends Shadow {
|
||||
$$form
|
||||
$name
|
||||
|
||||
render = () => {
|
||||
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
this.name = this.form.path.split("/").pop()
|
||||
}
|
||||
}, randomName("space-"))
|
||||
|
||||
try {
|
||||
let space = ChildSpace({path: "/asd"})
|
||||
return "no error thrown!"
|
||||
} catch(e) {
|
||||
if(e.message.includes("Observed Object")) {
|
||||
} else {
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FieldsInCorrectOrder() {
|
||||
window.register(class ChildSpace extends Shadow {
|
||||
$$form
|
||||
$name
|
||||
|
||||
render = () => {
|
||||
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super()
|
||||
this.name = this.form.path.split("/").pop()
|
||||
}
|
||||
}, randomName("space-"))
|
||||
|
||||
class Form extends ObservedObject {
|
||||
$path
|
||||
}
|
||||
|
||||
try {
|
||||
let space = ChildSpace(Form.create({path: "/asd"}))
|
||||
} catch(e) {
|
||||
if(e.message.includes("Cannot read properties of undefined (reading 'path')")) {
|
||||
return "Form did not get initialized!"
|
||||
} else {
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UnneededArgumentThrowsError() {
|
||||
register(class SidebarFile extends Shadow {
|
||||
|
||||
}, randomName("sb-file"))
|
||||
|
||||
try {
|
||||
SidebarFile({path: "/asd"})
|
||||
return "Did not throw error!"
|
||||
} catch(e) {
|
||||
if(!e.message.includes("passed in where")) {
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ConflictingPropertyNameThrowsError() {
|
||||
register(class SidebarFile extends Shadow {
|
||||
$width = 0
|
||||
|
||||
}, randomName("sb-file"))
|
||||
|
||||
try {
|
||||
SidebarFile()
|
||||
return "Did not throw error!"
|
||||
} catch(e) {
|
||||
if(!e.message.includes(`Property name "width" is not valid`)) {
|
||||
throw e
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user