feat: project separation in the flow list (0.25.0)
Filter the file list by the host's active project — flows without a project: key count as 'general', display-only, the file is never rewritten. New flows are stamped with the active project's key (general and all-projects stay unstamped). Adds a toolbarTrailing slot so the host can mount its workspace switcher in the editor's single toolbar, and a flowsDir injection point so widget tests run against a temp dir instead of the operator's ~/.chain flows. Covered by pure filter-semantics tests plus hermetic widget tests for filtering, the project-empty state, and new-flow stamping. Signed-off-by: flemming-it <sf@flemming.it>
This commit is contained in:
parent
ab97e5e834
commit
c4a39a3779
6 changed files with 302 additions and 9 deletions
|
|
@ -34,6 +34,30 @@ void main() {
|
|||
});
|
||||
});
|
||||
|
||||
group('project filter semantics', () {
|
||||
test('no project key counts as general (display only)', () {
|
||||
expect(effectiveFlowProject(''), 'general');
|
||||
expect(effectiveFlowProject('client-a'), 'client-a');
|
||||
});
|
||||
|
||||
test('empty active workspace shows every flow', () {
|
||||
expect(flowVisibleInProject('', ''), isTrue);
|
||||
expect(flowVisibleInProject('client-a', ''), isTrue);
|
||||
});
|
||||
|
||||
test('general shows keyless flows and explicit general ones', () {
|
||||
expect(flowVisibleInProject('', 'general'), isTrue);
|
||||
expect(flowVisibleInProject('general', 'general'), isTrue);
|
||||
expect(flowVisibleInProject('client-a', 'general'), isFalse);
|
||||
});
|
||||
|
||||
test('a project shows only its own flows', () {
|
||||
expect(flowVisibleInProject('client-a', 'client-a'), isTrue);
|
||||
expect(flowVisibleInProject('', 'client-a'), isFalse);
|
||||
expect(flowVisibleInProject('client-b', 'client-a'), isFalse);
|
||||
});
|
||||
});
|
||||
|
||||
group('normalizeProjectSlug', () {
|
||||
test('collapses separators and trims trailing dashes', () {
|
||||
expect(normalizeProjectSlug('Projekt Alpha__'), 'projekt-alpha');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue