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
43 changes: 43 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@

// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/powershell
{
"name": "PowerShell",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/powershell:lts-ubuntu-22.04",

"features": {
"ghcr.io/devcontainers/features/common-utils:2": {},
"ghcr.io/devcontainers/features/sshd:1": {},
"ghcr.io/devcontainers/features/dotnet:1": {},
"ghcr.io/devcontainers/features/github-cli:1": {}
},

"postCreateCommand": "sudo chsh vscode -s \"$(which pwsh)\"",

// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Set *default* container specific settings.json values on container create.
"settings": {
"terminal.integrated.defaultProfile.linux": "pwsh"
},

// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"ms-vscode.powershell",
"github.copilot",
"GitHub.copilot-chat",
"mhutchie.git-graph"
]
}
}

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}

34 changes: 34 additions & 0 deletions .github/copilot-commit-message-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Semantic Commit Messages

See how a minor change to your commit message style can make you a better programmer.

Format: `<type>(<scope>): <subject>`

`<scope>` is optional

## Example

```
feat: add hat wobble
^--^ ^------------^
| |
| +-> Summary in present tense.
|
+-------> Type: chore, docs, feat, fix, refactor, style, or test.
```

More Examples:

- `feat`: (new feature for the user, not a new feature for build script)
- `fix`: (bug fix for the user, not a fix to a build script)
- `docs`: (changes to the documentation)
- `style`: (formatting, missing semi colons, etc; no production code change)
- `refactor`: (refactoring production code, eg. renaming a variable)
- `test`: (adding missing tests, refactoring tests; no production code change)
- `chore`: (updating grunt tasks etc; no production code change)

References:

- https://www.conventionalcommits.org/
- https://seesparkbox.com/foundry/semantic_commit_messages
- http://karma-runner.github.io/1.0/dev/git-commit-msg.html
44 changes: 44 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Copilot Instructions

## Powershell Modules Code Instructions

### PowerShell Functions Instructions

Every powershell function will contain the `CmdletBinding` attribute and the `parm`iven if there are no parameters.
If the function is on the public folder of the module, we will add the Èxport-ModuleFunction` statement in the same line as the closing `}` of the function

Sample of function will be:

```powershell

function Get-UserName{
[CmdletBinding()]
param()

#Logic of the function
} Export-ModuleFunction -FunctionName 'Get-UserName'
```

### PowerShell Test Instructions

Every public function on the Test module will have the following format

- Name will start with `Test_` will follow the name of the function that we are testing with no '-'. It will follow the intention of the test splited with a '_'
- Every time we create a new function with no body we will add the `Assert-NotImplemented` statement at the end
- We will add the 3 sections as with comments `Arrange`, `Act` and `Assert` to make the test more readable.
- Sample of a test function to test `Get-UserName` function will be `Test_GetUserName_UserNotFound`

Full sample will be as follows

```powershell
function Test_GetUserName_UserNotFound{

# Arrange

# Act

# Assert

Assert-NotImplemented
}
```
44 changes: 44 additions & 0 deletions .github/copilot-pull-request-description-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Pull Request Code Instructions

## PR TITLE

Follow this guidelines to construct the title of your pull request.

Format: `<type>(<scope>): <subject>`

`<scope>` is optional

## Example

```
feat: add hat wobble
^--^ ^------------^
| |
| +-> Summary in present tense.
|
+-------> Type: chore, docs, feat, fix, refactor, style, or test.
```

More Examples:

- `feat`: (new feature for the user, not a new feature for build script)
- `fix`: (bug fix for the user, not a fix to a build script)
- `docs`: (changes to the documentation)
- `style`: (formatting, missing semi colons, etc; no production code change)
- `refactor`: (refactoring production code, eg. renaming a variable)
- `test`: (adding missing tests, refactoring tests; no production code change)
- `chore`: (updating grunt tasks etc; no production code change)

References:

- https://www.conventionalcommits.org/
- https://seesparkbox.com/foundry/semantic_commit_messages
- http://karma-runner.github.io/1.0/dev/git-commit-msg.html

## Pull Reques description

- Add a summery of the intention of the PR. Use the title and the messages of the commits to create a summary.
- Add a list with all the commit messages in the PR.



149 changes: 149 additions & 0 deletions Test/public/convertMeetingMembersToMarkdown.test.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
function Test_ConvertMeetingMembersToMarkdown_SingleCompany {

# Arrange
$input = "Alice Johnson <alice.johnson@alphatech.com>, `"Bob Smith (AlphaTech)`" <bob.smith@alphatech.com>"

# Act
$result = Convert-MeetingMembersToMarkdown -MeetingMembers $input

# Assert
$expected = @"
- Alphatech
- Alice Johnson <alice.johnson@alphatech.com>
- "Bob Smith (AlphaTech)" <bob.smith@alphatech.com>
"@
Assert-AreEqual -Expected $expected -Presented $result -Comment "Single company output should match expected format"
}

function Test_ConvertMeetingMembersToMarkdown_MultipleCompanies {

# Arrange
$input = "Alice Johnson <alice.johnson@alphatech.com>, `"Bob Smith (AlphaTech)`" <bob.smith@alphatech.com>, Alice Johnson <alice.johnson@betasoft.com>, `"Charlie Brown, David`" <charlie.brown@gammatech.com>, `"Emma Wilson, Frank`" <emma.wilson@gammatech.com>, `"Grace Lee, Henry`" <grace.lee@gammatech.com>"

# Act
$result = Convert-MeetingMembersToMarkdown -MeetingMembers $input

# Assert
$expected = @"
- Alphatech
- Alice Johnson <alice.johnson@alphatech.com>
- "Bob Smith (AlphaTech)" <bob.smith@alphatech.com>
- Betasoft
- Alice Johnson <alice.johnson@betasoft.com>
- Gammatech
- "Charlie Brown, David" <charlie.brown@gammatech.com>
- "Emma Wilson, Frank" <emma.wilson@gammatech.com>
- "Grace Lee, Henry" <grace.lee@gammatech.com>
"@
Assert-AreEqual -Expected $expected -Presented $result -Comment "Multiple companies should be sorted alphabetically"
}

function Test_ConvertMeetingMembersToMarkdown_DuplicateMemberDifferentCompanies {

# Arrange
$input = "Alice Johnson <alice.johnson@alphatech.com>, Alice Johnson <alice.johnson@betasoft.com>"

# Act
$result = Convert-MeetingMembersToMarkdown -MeetingMembers $input

# Assert
# Same person with different emails should appear in both company groups
$expected = @"
- Alphatech
- Alice Johnson <alice.johnson@alphatech.com>
- Betasoft
- Alice Johnson <alice.johnson@betasoft.com>
"@
Assert-AreEqual -Expected $expected -Presented $result -Comment "Same person with different emails should appear in both companies"
}

function Test_ConvertMeetingMembersToMarkdown_SpecialCharactersInName {

# Arrange
$input = "`"Bob Smith (AlphaTech)`" <bob.smith@alphatech.com>, `"Charlie Brown, David`" <charlie.brown@gammatech.com>"

# Act
$result = Convert-MeetingMembersToMarkdown -MeetingMembers $input

# Assert
# Names with special characters (parentheses, commas) should be preserved
$expected = @"
- Alphatech
- "Bob Smith (AlphaTech)" <bob.smith@alphatech.com>
- Gammatech
- "Charlie Brown, David" <charlie.brown@gammatech.com>
"@
Assert-AreEqual -Expected $expected -Presented $result -Comment "Names with special characters should be preserved"
}

function Test_ConvertMeetingMembersToMarkdown_EmptyInput {

# Arrange
$input = ""

# Act
$result = Convert-MeetingMembersToMarkdown -MeetingMembers $input

# Assert
Assert-AreEqual -Expected "" -Presented $result -Comment "Empty input should return empty string"
}

function Test_ConvertMeetingMembersToMarkdown_WhitespaceOnlyInput {

# Arrange
$input = " "

# Act
$result = Convert-MeetingMembersToMarkdown -MeetingMembers $input

# Assert
Assert-AreEqual -Expected "" -Presented $result -Comment "Whitespace-only input should return empty string"
}

function Test_ConvertMeetingMembersToMarkdown_SingleMember {

# Arrange
$input = "John Doe <john.doe@example.com>"

# Act
$result = Convert-MeetingMembersToMarkdown -MeetingMembers $input

# Assert
$expected = @"
- Example
- John Doe <john.doe@example.com>
"@
Assert-AreEqual -Expected $expected -Presented $result -Comment "Single member should work correctly"
}

function Test_ConvertMeetingsMembersToMarkdown_Big_sample{

$imput = @"
"Alice Anderson" <alice.anderson@deltalab.com>, "Amy Adams (She/Her)" <amy.adams@betasoft.com>, "Bob Brown" <bob.brown@betasoft.com>, "Charlie Chen" <charlie.chen@betasoft.com>, david.davis@betasoft.com, "David Dennis" <david.dennis@betasoft.com>, "Emma Evans, Eric" <emma.evans@deltalab.com>, emma.edwards@betasoft.com, "Frank Fields, Fiona" <frank.fields@deltalab.com>, george.garcia@bookings.betasoft.com, george.garcia@betasoft.com, "Grace (AlphaTech) Garcia" <grace.garcia@alphatech.com>, "Henry Harris" <henry.harris@alphatech.com>, "Iris Ingram" <iris.ingram@betasoft.com>, "Jack Johnson" <jack.johnson@betasoft.com>, "James Jackson" <james.jackson@betasoft.com>, "Jennifer Jones" <jennifer.jones@betasoft.com>, "Kevin Kim" <kevin.kim@alphatech.com>, "Kyle Knight" <kyle.knight@betasoft.com>, lisa.lee@betasoft.com, "Laura Lewis" <laura.lewis@alphatech.com>, "Mark Martinez" <mark.martinez@alphatech.com>
"@

$result = Convert-MeetingMembersToMarkdown -MeetingMembers $imput

Assert-AreEqual -Presented $result -Expected @"
- Alphatech
- "Grace (AlphaTech) Garcia" <grace.garcia@alphatech.com>
- "Henry Harris" <henry.harris@alphatech.com>
- "Kevin Kim" <kevin.kim@alphatech.com>
- "Laura Lewis" <laura.lewis@alphatech.com>
- "Mark Martinez" <mark.martinez@alphatech.com>
- Betasoft
- "Amy Adams (She/Her)" <amy.adams@betasoft.com>
- "Bob Brown" <bob.brown@betasoft.com>
- "Charlie Chen" <charlie.chen@betasoft.com>
- "David Dennis" <david.dennis@betasoft.com>
- "Iris Ingram" <iris.ingram@betasoft.com>
- "Jack Johnson" <jack.johnson@betasoft.com>
- "James Jackson" <james.jackson@betasoft.com>
- "Jennifer Jones" <jennifer.jones@betasoft.com>
- "Kyle Knight" <kyle.knight@betasoft.com>
- Deltalab
- "Alice Anderson" <alice.anderson@deltalab.com>
- "Emma Evans, Eric" <emma.evans@deltalab.com>
- "Frank Fields, Fiona" <frank.fields@deltalab.com>
"@
}
Loading
Loading