Skip to content

ci: Fix last release notes to ensure whole file is replaced #318

ci: Fix last release notes to ensure whole file is replaced

ci: Fix last release notes to ensure whole file is replaced #318

GitHub Actions / Contextive Language Server Tests (net8.0.x - macOS) succeeded Sep 20, 2024 in 0s

180 passed, 0 failed and 0 skipped

Tests passed successfully

Report Passed Failed Skipped Time
src/core/Contextive.Core.Tests/TestResults/TestResults.Contextive.Core-8.0.x-macOS.xml 28✅ 1s
src/language-server/Contextive.LanguageServer.Tests/TestResults/TestResults.Contextive.LanguageServer-8.0.x-macOS.xml 152✅ 8s

✅ src/core/Contextive.Core.Tests/TestResults/TestResults.Contextive.Core-8.0.x-macOS.xml

28 tests were completed in 1s with 28 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Core.Candidate Terms Tests.Candidate Term Finding Tests 5✅ 56ms
Core.Definitions Tests 4✅ 16ms
Core.Definitions Tests.Parsing Errors 3✅ 3ms
Core.Definitions Tests.Successful Parsing 9✅ 76ms
Core.Definitions Tests.Successful Parsing.Multi-line context name 6✅ 3ms
Core.Definitions Tests.ValidationErrors 1✅ 1ms

✅ Core.Candidate Terms Tests.Candidate Term Finding Tests

✅ Token camelCase: finds candidates [("camel", seq ["camel"]); ("Case", seq ["Case"]);
 ("camelCase", seq ["camel"; "Case"])]
✅ Token firstword: finds candidates [("firstword", seq ["firstword"])]
✅ Token PascalCase: finds candidates [("Pascal", seq ["Pascal"]); ("Case", seq ["Case"]);
 ("PascalCase", seq ["Pascal"; "Case"])]
✅ Token PascalCaseId: finds candidates [("Pascal", seq ["Pascal"]); ("Case", seq ["Case"]); ("Id", seq ["Id"]);
 ("PascalCase", seq ["Pascal"; "Case"]); ("CaseId", seq ["Case"; "Id"]);
 ("PascalCaseId", seq ["Pascal"; "Case"; "Id"])]
✅ Token snake_case: finds candidates [("snake", seq ["snake"]); ("case", seq ["case"]);
 ("snakecase", seq ["snake"; "case"])]

✅ Core.Definitions Tests

✅ Context has default
✅ Context with new terms has new terms
✅ Definitions has default
✅ Term has default

✅ Core.Definitions Tests.Parsing Errors

✅ Error when file is empty
✅ Error with extra colon typo
✅ Error with unexpected key

✅ Core.Definitions Tests.Successful Parsing

✅ Can Parse Context Domain Vision Statement
✅ Can Parse Context Name
✅ Can Parse Context Paths
✅ Can Parse Term Aliases
✅ Can Parse Term Definition
✅ Can Parse Term Examples
✅ Can Parse Term Name
✅ Empty List parses as empty list instead of null
✅ Minimal parse has parse defaults

✅ Core.Definitions Tests.Successful Parsing.Multi-line context name

✅ Folded, Chomp
✅ Folded, Clip
✅ Folded, Keep
✅ Literal, Chomp
✅ Literal, Clip
✅ Literal, Keep

✅ Core.Definitions Tests.ValidationErrors

✅ Term name is required

✅ src/language-server/Contextive.LanguageServer.Tests/TestResults/TestResults.Contextive.LanguageServer-8.0.x-macOS.xml

152 tests were completed in 8s with 152 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
LanguageServer.Completion Tests 2✅ 112ms
LanguageServer.Completion Tests.Detail Completion 2✅ 2ms
LanguageServer.Completion Tests.Documentation Completion 2✅ 4ms
LanguageServer.Completion Tests.File reading tests 4✅ 631ms
LanguageServer.Completion Tests.Multi Word Completion 8✅ 7ms
LanguageServer.Completion Tests.Single Word Completion 9✅ 63ms
LanguageServer.Configuration Tests 3✅ 662ms
LanguageServer.Definitions File Tests 4✅ 21ms
LanguageServer.Definitions File Tests.Can load definition from correct context 11✅ 36ms
LanguageServer.Definitions File Tests.Can recover from invalid definitions 4✅ 27ms
LanguageServer.Definitions File Tests.Can recover from invalid definitions when config changes 4✅ 932ms
LanguageServer.Definitions Initialization Tests 5✅ 2s
LanguageServer.File Loader Tests 3✅ 35ms
LanguageServer.Hover Tests 2✅ 161ms
LanguageServer.Hover Tests.Less relevant term NOT found when hovering 2✅ 342ms
LanguageServer.Hover Tests.Nothing found when hovering 5✅ 685ms
LanguageServer.Hover Tests.Term found when hovering in opened docs at Positions 16✅ 3s
LanguageServer.Initialization Tests 9✅ 3s
LanguageServer.Path Resolver Tests 8✅ 239ms
LanguageServer.Rendering Tests 4✅ 7ms
LanguageServer.Rendering Tests.Render Terms 11✅ 3ms
LanguageServer.TextDocument Tests 4✅ 133ms
LanguageServer.TextDocument Tests.Given open text document, can find text document 2✅ 2ms
LanguageServer.TextDocument Tests.Wordfinding Tests 23✅ 0ms
LanguageServer.Watched File Tests 3✅ 675ms
LanguageServer.Watched File Tests.Server registers to receive watched file changes on new config 2✅ 473ms

✅ LanguageServer.Completion Tests

✅ Completion Kind Is Reference
✅ Given no contextive respond with empty completion list 

✅ LanguageServer.Completion Tests.Detail Completion

✅ Context "" has detail ""
✅ Context "context name" has detail "context name Context"

✅ LanguageServer.Completion Tests.Documentation Completion

✅ Context "term": "" has expected documentation
✅ Context "term": "Some(some Definition)" has expected documentation

✅ LanguageServer.Completion Tests.File reading tests

✅ Given one contextive, in document  at position (line: 0, char: 0) respond with expected completion list 
✅ Given two contextive, in document  at position (line: 0, char: 0) respond with expected completion list 
✅ Given two contextive, in document W at position (line: 0, char: 1) respond with expected completion list 
✅ Given two contextive, in document WO at position (line: 0, char: 2) respond with expected completion list 

✅ LanguageServer.Completion Tests.Multi Word Completion

✅ Completion of "multi word" with Some() at position, returns "["multiWord"; "MultiWord"; "multi_word"]"
✅ Completion of "Multi Word" with Some() at position, returns "["multiWord"; "MultiWord"; "multi_word"]"
✅ Completion of "multi word" with Some(m) at position, returns "["multiWord"; "multi_word"]"
✅ Completion of "multi word" with Some(M) at position, returns "["MultiWord"; "MULTI_WORD"]"
✅ Completion of "Multi Word" with Some(m) at position, returns "["multiWord"; "multi_word"]"
✅ Completion of "Multi Word" with Some(M) at position, returns "["MultiWord"; "MULTI_WORD"]"
✅ Completion of "multi word" with Some(MU) at position, returns "["MULTIWORD"; "MULTI_WORD"]"
✅ Completion of "Multi Word" with Some(MU) at position, returns "["MULTIWORD"; "MULTI_WORD"]"

✅ LanguageServer.Completion Tests.Single Word Completion

✅ Completion of "term" with  at position, returns "term"
✅ Completion of "term" with Some() at position, returns "term"
✅ Completion of "Term" with Some() at position, returns "Term"
✅ Completion of "term" with Some(t) at position, returns "term"
✅ Completion of "term" with Some(T) at position, returns "Term"
✅ Completion of "Term" with Some(t) at position, returns "term"
✅ Completion of "term" with Some(Te) at position, returns "Term"
✅ Completion of "term" with Some(TE) at position, returns "TERM"
✅ Completion of "term" with Some(TEr) at position, returns "Term"

✅ LanguageServer.Configuration Tests

✅ Can handle client that doesn't support didChangeConfiguration
✅ Can handle configuration value changing
✅ Can receive configuration value

✅ LanguageServer.Definitions File Tests

✅ Can load multi-context definitions
✅ Can load term Definitions
✅ Can load term Names
✅ Can load term UsageExamples

✅ LanguageServer.Definitions File Tests.Can load definition from correct context

✅ with path /primary, expecting [termInPrimary]
✅ with path /secondary, expecting [termInSecondary]
✅ with path /some/path, expecting []
✅ with path /some/path/test_dot_cs, expecting []
✅ with path /some/path/with/primary_dot_txt, expecting [termInPrimary]
✅ with path /some/path/with/primary, expecting [termInPrimary]
✅ with path /some/path/with/primary/in/it_dot_txt, expecting [termInPrimary]
✅ with path /some/path/with/secondary_dot_txt, expecting [termInSecondary]
✅ with path /some/path/with/secondary, expecting [termInSecondary]
✅ with path /some/path/with/secondary/in/it_dot_txt, expecting [termInSecondary]
✅ with path /some/path/with/test_dot_js, expecting [termInPrimary]

✅ LanguageServer.Definitions File Tests.Can recover from invalid definitions

✅ invalid_empty
✅ invalid_schema
✅ invalid_schema2
✅ no_file

✅ LanguageServer.Definitions File Tests.Can recover from invalid definitions when config changes

✅ invalid_empty
✅ invalid_schema
✅ invalid_schema2
✅ no_file

✅ LanguageServer.Definitions Initialization Tests

✅ Initialization command creates default definitions file at configured path
✅ Initialization command creates default definitions file at configured path when subfolder doesn't exist
✅ Initialization command opens existing definitions file without changing it
✅ Initialization command opens new definitions file
✅ Initialization command updates existing schema file

✅ LanguageServer.File Loader Tests

✅ Path Doesn't exist
✅ Path exists
✅ Path is in error state

✅ LanguageServer.Hover Tests

✅ Given no definitions and no document sync, server response to hover request with empty result
✅ Test hover with context info and no match

✅ LanguageServer.Hover Tests.Less relevant term NOT found when hovering

✅ Given definitions 'CombinedWord' and document open, server responds to hover request without the less relevant 'combined' in (line: 0, char: 0)
✅ Given definitions 'CombinedWord' and document open, server responds to hover request without the less relevant 'word' in (line: 0, char: 0)

✅ LanguageServer.Hover Tests.Nothing found when hovering

✅ Given definitions '    anothernotterm' and document open, server responds to hover request with no content in (line: 0, char: 0)
✅ Given definitions '' and document open, server responds to hover request with no content in (line: 0, char: 0)
✅ Given definitions 'firstTerm NotATerm' and document open, server responds to hover request with no content in (line: 0, char: 10)
✅ Given definitions 'NotATerm' and document open, server responds to hover request with no content in (line: 0, char: 0)
✅ Given definitions 'Something' and document open, server responds to hover request with no content in (line: 0, char: 0)

✅ LanguageServer.Hover Tests.Term found when hovering in opened docs at Positions

✅ Given definitions file 'empty_terms_list' and file contents 'single', server responds to hover request at Position (line: 0, char: 0) with 'single'
✅ Given definitions file 'three' and file contents 'AnotherCombinedWord', server responds to hover request at Position (line: 0, char: 1) with 'another'
✅ Given definitions file 'three' and file contents 'AnotherCombinedWord', server responds to hover request at Position (line: 0, char: 1) with 'CombinedWord'
✅ Given definitions file 'three' and file contents 'anotherWord', server responds to hover request at Position (line: 0, char: 1) with 'another'
✅ Given definitions file 'three' and file contents 'combined_word', server responds to hover request at Position (line: 0, char: 1) with 'CombinedWord'
✅ Given definitions file 'three' and file contents 'CombinedWordId', server responds to hover request at Position (line: 0, char: 1) with 'CombinedWord'
✅ Given definitions file 'three' and file contents 'octopi', server responds to hover request at Position (line: 0, char: 0) with 'octopus'
✅ Given definitions file 'three' and file contents 'original another word', server responds to hover request at Position (line: 0, char: 11) with 'another'
✅ Given definitions file 'three' and file contents 'original another', server responds to hover request at Position (line: 0, char: 10) with 'another'
✅ Given definitions file 'three' and file contents 'original', server responds to hover request at Position (line: 0, char: 0) with 'original'
✅ Given definitions file 'three' and file contents 'Original', server responds to hover request at Position (line: 0, char: 0) with 'original'
✅ Given definitions file 'three' and file contents 'original\nanother', server responds to hover request at Position (line: 1, char: 5) with 'another'
✅ Given definitions file 'three' and file contents 'original\nword\nanother', server responds to hover request at Position (line: 2, char: 4) with 'another'
✅ Given definitions file 'three' and file contents 'original\r\nanother', server responds to hover request at Position (line: 1, char: 5) with 'another'
✅ Given definitions file 'three' and file contents 'original\r\nword\r\nanother', server responds to hover request at Position (line: 2, char: 5) with 'another'
✅ Given definitions file 'three' and file contents 'originals', server responds to hover request at Position (line: 0, char: 0) with 'original'

✅ LanguageServer.Initialization Tests

✅ Can Initialize Language Server
✅ Has Correct ServerInfo Name
✅ Server does NOT load contextive file from relative location without workspace
✅ Server doesn't error when no configuration supplied but file doesn't exists
✅ Server errors when configuration supplied and file doesn't exists
✅ Server loads contextive file from absolute location without workspace
✅ Server loads contextive file from default location when no configuration supplied and file exists
✅ Server loads contextive file from relative location with rootUi and no workspace
✅ Server loads contextive file from relative location with workspace

✅ LanguageServer.Path Resolver Tests

✅ No Workspace, no path
✅ No Workspace, non-root path
✅ No Workspace, Process Shell path
✅ No Workspace, Root path
✅ Process Error
✅ Workspace, non-root path
✅ Workspace, Process Shell path
✅ Workspace, Root path

✅ LanguageServer.Rendering Tests

✅ Render fully defined Context
✅ Render multiple Contexts
✅ Render vision statement with newline at the end
✅ Render vision statement with whitespace at the end

✅ LanguageServer.Rendering Tests.Render Terms

✅ Terms: [First; Term]
✅ Terms: [firstTerm]
✅ Terms: [Second; Term]
✅ Terms: [SecondTerm]
✅ Terms: [termWithAlias]
✅ Terms: [termWithAliases]
✅ Terms: [TermWithExamples; AnotherTermWithExamples]
✅ Terms: [ThirdTerm]
✅ Terms: [ThirdTermWithLeadingWhitespaceInUsage]
✅ Terms: [ThirdTermWithTrailingNewLineInUsage]
✅ Terms: [ThirdTermWithTrailingWhitespaceInUsage]

✅ LanguageServer.TextDocument Tests

✅ Given changed text document, can find text document
✅ Given Closed document, text document not found
✅ Given Saved document, can find text document
✅ Server supports full sync

✅ LanguageServer.TextDocument Tests.Given open text document, can find text document

✅ complex
✅ simple

✅ LanguageServer.TextDocument Tests.Wordfinding Tests

✅ argument: finds Some(firstelement) at position (line: 0, char: 10)
✅ array: finds Some(firstelement) at position (line: 0, char: 10)
✅ array: finds Some(secondelement) at position (line: 0, char: 15)
✅ braces: finds Some(firstelement) at position (line: 0, char: 10)
✅ method: finds Some(firstword) at position (line: 0, char: 1)
✅ multiple words: finds Some(firstword) at position (line: 0, char: 0)
✅ multiple words: finds Some(secondword) at position (line: 0, char: 10)
✅ multiple words: finds Some(secondword) at position (line: 0, char: 15)
✅ object arrow prop: finds Some(property) at position (line: 0, char: 11)
✅ object arrow: finds Some(firstword) at position (line: 0, char: 1)
✅ object method: finds Some(method) at position (line: 0, char: 10)
✅ object prop clause: finds Some(property) at position (line: 0, char: 18)
✅ object property: finds Some(property) at position (line: 0, char: 10)
✅ object: finds Some(firstword) at position (line: 0, char: 1)
✅ out of range char: finds  at position (line: 0, char: 50)
✅ out of range line: finds  at position (line: 1, char: 0)
✅ position at end: finds  at position (line: 0, char: 21)
✅ position at end: finds Some(secondword) at position (line: 0, char: 20)
✅ position on space: finds Some(firstword) at position (line: 0, char: 9)
✅ sentence: finds Some(word) at position (line: 0, char: 1)
✅ single word: finds Some(firstword) at position (line: 0, char: 0)
✅ single word: finds Some(secondword) at position (line: 1, char: 0)
✅ yaml key: finds Some(key) at position (line: 0, char: 1)

✅ LanguageServer.Watched File Tests

✅ Server registers to receive watched file changes
✅ Server reloads when the contextive file changes
✅ Server reloads when the contextive file is created

✅ LanguageServer.Watched File Tests.Server registers to receive watched file changes on new config

✅ when config changes to nonexistentfile_yml
✅ when config changes to three_yml