mirror of
https://github.com/ivuorinen/tree-sitter-shellspec.git
synced 2026-02-10 14:50:45 +00:00
feat: implement complete tree-sitter-shellspec grammar with comprehensive testing
- Add full ShellSpec grammar extending tree-sitter-bash - Support all ShellSpec constructs: Describe, Context, It, hooks, utilities - Include Data block parsing with statements and argument styles - Add 61 comprehensive test cases covering real-world patterns - Implement optimized GitHub workflows with CI/CD automation - Configure complete development tooling (linting, formatting, pre-commit) - Add comprehensive documentation and contribution guidelines - Optimize grammar conflicts to zero warnings - Support editor integration for Neovim, VS Code, Emacs Breaking Changes: - Initial release, no previous API to break BREAKING CHANGE: Initial implementation of tree-sitter-shellspec grammar # Conflicts: # .github/workflows/codeql.yml # .github/workflows/pr-lint.yml # .pre-commit-config.yaml # Conflicts: # .github/workflows/pr-lint.yml # Conflicts: # .github/workflows/pr-lint.yml
This commit is contained in:
213
test/corpus/it_blocks.txt
Normal file
213
test/corpus/it_blocks.txt
Normal file
@@ -0,0 +1,213 @@
|
||||
================================================================================
|
||||
Basic It block
|
||||
================================================================================
|
||||
|
||||
It "should work correctly"
|
||||
echo "test"
|
||||
End
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(program
|
||||
(shellspec_it_block
|
||||
description: (string
|
||||
(string_content))
|
||||
(command
|
||||
name: (command_name
|
||||
(word))
|
||||
argument: (string
|
||||
(string_content)))))
|
||||
|
||||
================================================================================
|
||||
Example block
|
||||
================================================================================
|
||||
|
||||
Example "example behavior"
|
||||
echo "example"
|
||||
End
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(program
|
||||
(shellspec_it_block
|
||||
description: (string
|
||||
(string_content))
|
||||
(command
|
||||
name: (command_name
|
||||
(word))
|
||||
argument: (string
|
||||
(string_content)))))
|
||||
|
||||
================================================================================
|
||||
Specify block
|
||||
================================================================================
|
||||
|
||||
Specify "specific behavior"
|
||||
echo "specify"
|
||||
End
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(program
|
||||
(shellspec_it_block
|
||||
description: (string
|
||||
(string_content))
|
||||
(command
|
||||
name: (command_name
|
||||
(word))
|
||||
argument: (string
|
||||
(string_content)))))
|
||||
|
||||
================================================================================
|
||||
Focused It block
|
||||
================================================================================
|
||||
|
||||
fIt "focused test"
|
||||
echo "focused"
|
||||
End
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(program
|
||||
(shellspec_it_block
|
||||
description: (string
|
||||
(string_content))
|
||||
(command
|
||||
name: (command_name
|
||||
(word))
|
||||
argument: (string
|
||||
(string_content)))))
|
||||
|
||||
================================================================================
|
||||
Focused Example block
|
||||
================================================================================
|
||||
|
||||
fExample "focused example"
|
||||
echo "focused"
|
||||
End
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(program
|
||||
(shellspec_it_block
|
||||
description: (string
|
||||
(string_content))
|
||||
(command
|
||||
name: (command_name
|
||||
(word))
|
||||
argument: (string
|
||||
(string_content)))))
|
||||
|
||||
================================================================================
|
||||
Focused Specify block
|
||||
================================================================================
|
||||
|
||||
fSpecify "focused specify"
|
||||
echo "focused"
|
||||
End
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(program
|
||||
(shellspec_it_block
|
||||
description: (string
|
||||
(string_content))
|
||||
(command
|
||||
name: (command_name
|
||||
(word))
|
||||
argument: (string
|
||||
(string_content)))))
|
||||
|
||||
================================================================================
|
||||
Skipped It block
|
||||
================================================================================
|
||||
|
||||
xIt "skipped test"
|
||||
echo "skipped"
|
||||
End
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(program
|
||||
(shellspec_it_block
|
||||
description: (string
|
||||
(string_content))
|
||||
(command
|
||||
name: (command_name
|
||||
(word))
|
||||
argument: (string
|
||||
(string_content)))))
|
||||
|
||||
================================================================================
|
||||
Skipped Example block
|
||||
================================================================================
|
||||
|
||||
xExample "skipped example"
|
||||
echo "skipped"
|
||||
End
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(program
|
||||
(shellspec_it_block
|
||||
description: (string
|
||||
(string_content))
|
||||
(command
|
||||
name: (command_name
|
||||
(word))
|
||||
argument: (string
|
||||
(string_content)))))
|
||||
|
||||
================================================================================
|
||||
Skipped Specify block
|
||||
================================================================================
|
||||
|
||||
xSpecify "skipped specify"
|
||||
echo "skipped"
|
||||
End
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(program
|
||||
(shellspec_it_block
|
||||
description: (string
|
||||
(string_content))
|
||||
(command
|
||||
name: (command_name
|
||||
(word))
|
||||
argument: (string
|
||||
(string_content)))))
|
||||
|
||||
================================================================================
|
||||
It with complex assertions
|
||||
================================================================================
|
||||
|
||||
It "should handle complex logic"
|
||||
local result
|
||||
result=$(some_function "param")
|
||||
[ "$result" = "expected" ]
|
||||
End
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
(program
|
||||
(shellspec_it_block
|
||||
description: (string
|
||||
(string_content))
|
||||
(declaration_command
|
||||
(variable_name))
|
||||
(variable_assignment
|
||||
name: (variable_name)
|
||||
value: (command_substitution
|
||||
(command
|
||||
name: (command_name
|
||||
(word))
|
||||
argument: (string
|
||||
(string_content)))))
|
||||
(test_command
|
||||
(binary_expression
|
||||
left: (string
|
||||
(simple_expansion
|
||||
(variable_name)))
|
||||
right: (string
|
||||
(string_content))))))
|
||||
Reference in New Issue
Block a user