slint/api/napi/__test__/api.spec.ts
Florian Blasius f4eb46465b
napi documentation (#3689)
* napi documentation

* Add missing documentation
* Generate documentation with typedoc

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/index.ts

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/src/types/size.rs

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/index.ts

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/index.ts

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/src/types/size.rs

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* code review feedback.

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Code review feedback.

* Update api/napi/index.ts

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* code review feedback.

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/cover.md

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Code review feedback.

* napi: added slint example to callback

* napi: added example to instantiating a component

* Update api/napi/src/interpreter/diagnostic.rs

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/src/interpreter/diagnostic.rs

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/src/interpreter/diagnostic.rs

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/src/interpreter/diagnostic.rs

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/src/interpreter/diagnostic.rs

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/src/types/brush.rs

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* Update api/napi/src/types/image_data.rs

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* napi: more code review stuff

---------

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
2023-10-19 11:53:00 +02:00

58 lines
No EOL
1.7 KiB
TypeScript

// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.1 OR LicenseRef-Slint-commercial
import test from 'ava'
const path = require('node:path');
import { loadFile, CompileError } from '../index'
test('loadFile', (t) => {
let demo = loadFile(path.join(__dirname, "resources/test.slint"));
let test = new demo.Test();
t.is(test.check, "Test");
let errorPath = path.join(__dirname, "resources/error.slint");
const error = t.throws(() => {
loadFile(errorPath)
},
{instanceOf: CompileError}
);
t.is(error?.message, "Could not compile " + errorPath);
t.deepEqual(error?.diagnostics, [
{
column: 18,
level: 0,
lineNumber: 7,
message: 'Missing type. The syntax to declare a property is `property <type> name;`. Only two way bindings can omit the type',
sourceFile: errorPath
},
{
column: 22,
level: 0,
lineNumber: 7,
message: 'Syntax error: expected \';\'',
sourceFile: errorPath
},
{
column: 22,
level: 0,
lineNumber: 7,
message: 'Parse error',
sourceFile: errorPath
},
]);
})
test('constructor parameters', (t) => {
let demo = loadFile(path.join(__dirname, "resources/test-constructor.slint"));
let hello = "";
let test = new demo.Test({ say_hello: function() { hello = "hello"; }, check: "test"});
// test.say_hello.setHandler(function () { blub = "hello"; });
test.say_hello();
t.is(test.check, "test");
t.is(hello, "hello");
})