diff --git a/src/effect/tests.ts b/src/effect/tests.ts new file mode 100644 index 0000000..2c653c9 --- /dev/null +++ b/src/effect/tests.ts @@ -0,0 +1,30 @@ +import { Schema as S } from "@effect/schema" +import { Implements } from "../TraitExpression" +import { expression } from "../TraitExpressionBuilder" +import { extendsEffectSchemaExpression } from "../effect" + + +const UserSchema = S.Class("User")({ + id: S.BigIntFromSelf +}) + +const userExp = expression + .extends(UserSchema) + .build() + +@userExp.staticImplements +class User extends extendsEffectSchemaExpression(userExp)() implements Implements { + static aStaticMethodThatShouldBeInherited() {} +} + + +const AdminSchema = User.extend("Admin")({ +}) + +const adminExp = expression + .extends(AdminSchema) + .build() + +@adminExp.staticImplements +class Admin extends extendsEffectSchemaExpression(adminExp)() implements Implements { +}