Skip to content

[web_generator] Setting up web_generator for Dart JS Interop Gen #368

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Jun 6, 2025

Conversation

nikeokoronkwo
Copy link
Contributor

This PR is for setting up the web_generator to begin adding support for generating Dart JS interop interface code from TypeScript Declaration Code.

For more information, see the project overview

  • I’ve reviewed the contributor guide and applied the relevant portions to this PR.

@nikeokoronkwo nikeokoronkwo marked this pull request as ready for review June 3, 2025 18:13
Copy link
Contributor

@srujzs srujzs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very cool to see us adding TSC and potentially start using it!

@nikeokoronkwo nikeokoronkwo changed the title [web_generator] Set up [web_generator] Setting up web_generator to add support for Dart JS Interop Interface Generation Jun 4, 2025
@nikeokoronkwo nikeokoronkwo changed the title [web_generator] Setting up web_generator to add support for Dart JS Interop Interface Generation [web_generator] Setting up web_generator for Dart JS Interop Gen Jun 4, 2025
@nikeokoronkwo nikeokoronkwo requested review from srujzs and kevmoo June 4, 2025 03:36
Copy link
Contributor

@srujzs srujzs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@srujzs srujzs removed the request for review from kevmoo June 6, 2025 15:57
@srujzs srujzs merged commit 4d24eb5 into dart-lang:main Jun 6, 2025
15 checks passed
@nikeokoronkwo nikeokoronkwo deleted the webgen/skeletal-scaffold branch June 6, 2025 18:07
@kevmoo
Copy link
Member

kevmoo commented Jun 6, 2025

The tests don't run by default because they are VM tests.
And when I run them locally they fail because there is not test input/output data.

@kevmoo
Copy link
Member

kevmoo commented Jun 6, 2025

Also

diff --git a/web_generator/test/ts_bindings_test.dart b/web_generator/test/ts_bindings_test.dart
index 3470d7a..8ef208a 100644
--- a/web_generator/test/ts_bindings_test.dart
+++ b/web_generator/test/ts_bindings_test.dart
@@ -9,13 +9,12 @@ import 'package:test/test.dart';
 import 'package:web_generator/src/cli.dart';
 
 void main() {
-  final testGenFolder = p.join('test', 'gen');
-  final testGenDTSFiles = p.join(testGenFolder, 'input');
-
   group('Web Generator TS Bindings Integration Test', () {
+    final testGenFolder = p.join('test', 'gen');
+    final testGenDTSFiles = p.join(testGenFolder, 'input');
     final inputDir = Directory(testGenDTSFiles);
 
-    setUp(() async {
+    setUpAll(() async {
       // set up npm
       await runProc('npm', ['install'],
           workingDirectory: bindingsGeneratorPath, detached: true);

Should keep the group vars together.
Should use setUpAll so the compile is only run once – since there should be ZERO change between tests. But that's once we have tests 😄

@srujzs
Copy link
Contributor

srujzs commented Jun 6, 2025

The tests don't run by default because they are VM tests.
And when I run them locally they fail because there is not test input/output data.

It looks like we were skipping a test already because of this: #373.

@nikeokoronkwo I filed #372 to track unskipping this test now that I'm enabling it in the CI. We should add a data folder that we read from and have the test use that.

@nikeokoronkwo
Copy link
Contributor Author

The tests don't run by default because they are VM tests. And when I run them locally they fail because there is not test input/output data.

I wanted to work on test implementation once we started working on declarations, as adding test cases now would fail anyways.

We should add a data folder that we read from and have the test use that.

The folder I used for this is gen/input for input data and gen/expected for output (both actual and expected)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants