Skip to content

fix: dot file entries not having hidden attribute on mac mock#937

Merged
vbreuss merged 3 commits intoTestably:mainfrom
pw-sgr:936-macos-dot-files-dont-get-hidden-attribute
Feb 15, 2026
Merged

fix: dot file entries not having hidden attribute on mac mock#937
vbreuss merged 3 commits intoTestably:mainfrom
pw-sgr:936-macos-dot-files-dont-get-hidden-attribute

Conversation

@pw-sgr
Copy link
Contributor

@pw-sgr pw-sgr commented Feb 12, 2026

Fixes #936

@pw-sgr pw-sgr changed the title MacOS: dot files don't get Hidden attribute fix: dot file entries not having hidden attribute on mac mock Feb 12, 2026
…ldBeHiddenOnLinux to AdjustAttributes_LeadingDot_ShouldBeHiddenOnUnix and adjusted expectation
@vbreuss vbreuss requested a review from Copilot February 12, 2026 17:50
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds coverage and implementation changes to ensure dot-prefixed entries are treated as Hidden on macOS (and other non-Windows platforms) in the in-memory file system.

Changes:

  • Add tests asserting .env (file/dir) has FileAttributes.Hidden on non-Windows.
  • Expand InMemoryContainer.AdjustAttributes to mark dot-prefixed entries as hidden on macOS as well as Linux.
  • Update a storage test name/condition from Linux-specific to Unix/non-Windows.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.

File Description
Tests/Testably.Abstractions.Tests/FileSystem/FileSystemInfo/Tests.cs Adds a FileInfo/DirectoryInfo attributes test for dot entries being hidden on non-Windows.
Tests/Testably.Abstractions.Tests/FileSystem/File/GetAttributesTests.cs Adds a File.GetAttributes test asserting dot files are hidden on non-Windows.
Tests/Testably.Abstractions.Testing.Tests/Storage/InMemoryContainerTests.cs Renames and broadens an “leading dot => hidden” test from Linux to non-Windows.
Source/Testably.Abstractions.Testing/Storage/InMemoryContainer.cs Implements hidden-flag adjustment for dot entries on macOS in addition to Linux.

@vbreuss vbreuss merged commit cbb6349 into Testably:main Feb 15, 2026
11 checks passed
@github-actions
Copy link

This is addressed in release v5.1.1.

@vbreuss
Copy link
Member

vbreuss commented Feb 15, 2026

Thanks @pw-sgr, I just released v5.1.1 with this fix!

@pw-sgr pw-sgr deleted the 936-macos-dot-files-dont-get-hidden-attribute branch February 17, 2026 06:04
AnakinRaW pushed a commit to AlamoEngine-Tools/PetroglyphTools that referenced this pull request Feb 18, 2026
Updated
[coverlet.collector](https://github.com/coverlet-coverage/coverlet) from
6.0.4 to 8.0.0.

<details>
<summary>Release notes</summary>

_Sourced from [coverlet.collector's
releases](https://github.com/coverlet-coverage/coverlet/releases)._

## 8.0.0

**Special Thanks:** A huge thank you to
[@​Bertk](https://github.com/Bertk) for driving the majority of the work
in this release! 🎉

### Fixed
- Fix System.CommandLine 2.0 release is available
[#​1776](coverlet-coverage/coverlet#1776)
- Fix Excluding From Coverage bad defaults from given example
[#​1764](coverlet-coverage/coverlet#1764)
- Fix branchpoint exclusion for sdk 8.0.407
[#​1741](coverlet-coverage/coverlet#1741)
- Fix missing copyright information in NuGet
[#​1794](coverlet-coverage/coverlet#1794)
- Fix bad default values in documentation
[#​1764](coverlet-coverage/coverlet#1764) by
<https://github.com/cboudereau>

### Improvements

- Coverlet MTP extension feature
[#​1788](coverlet-coverage/coverlet#1788)
- Generate SBOM for nuget packages
[#​1752](coverlet-coverage/coverlet#1752)
- Use multi targets projects for coverlet.collector,
coverlet.msbuild.tasks packages
[#​1742](coverlet-coverage/coverlet#1742)
- Use .NET 8.0 target framework for coverlet.core and remove
Newtonsoft.Json
[#​1733](coverlet-coverage/coverlet#1733)
- Use latest System.CommandLine version
[#​1660](coverlet-coverage/coverlet#1660)
- Upgraded minimum required .NET SDK and runtime to .NET 8.0 LTS (Long
Term Support) (**Breaking Change**)
- Use [xunit.v3](https://xunit.net/docs/getting-started/v3/whats-new)
for tests and example code

[Diff between 6.0.4 and
8.0.0](coverlet-coverage/coverlet@v6.0.4...v8.0.0)

Commits viewable in [compare
view](coverlet-coverage/coverlet@v6.0.4...v8.0.0).
</details>

Updated
[coverlet.msbuild](https://github.com/coverlet-coverage/coverlet) from
6.0.4 to 8.0.0.

<details>
<summary>Release notes</summary>

_Sourced from [coverlet.msbuild's
releases](https://github.com/coverlet-coverage/coverlet/releases)._

## 8.0.0

**Special Thanks:** A huge thank you to
[@​Bertk](https://github.com/Bertk) for driving the majority of the work
in this release! 🎉

### Fixed
- Fix System.CommandLine 2.0 release is available
[#​1776](coverlet-coverage/coverlet#1776)
- Fix Excluding From Coverage bad defaults from given example
[#​1764](coverlet-coverage/coverlet#1764)
- Fix branchpoint exclusion for sdk 8.0.407
[#​1741](coverlet-coverage/coverlet#1741)
- Fix missing copyright information in NuGet
[#​1794](coverlet-coverage/coverlet#1794)
- Fix bad default values in documentation
[#​1764](coverlet-coverage/coverlet#1764) by
<https://github.com/cboudereau>

### Improvements

- Coverlet MTP extension feature
[#​1788](coverlet-coverage/coverlet#1788)
- Generate SBOM for nuget packages
[#​1752](coverlet-coverage/coverlet#1752)
- Use multi targets projects for coverlet.collector,
coverlet.msbuild.tasks packages
[#​1742](coverlet-coverage/coverlet#1742)
- Use .NET 8.0 target framework for coverlet.core and remove
Newtonsoft.Json
[#​1733](coverlet-coverage/coverlet#1733)
- Use latest System.CommandLine version
[#​1660](coverlet-coverage/coverlet#1660)
- Upgraded minimum required .NET SDK and runtime to .NET 8.0 LTS (Long
Term Support) (**Breaking Change**)
- Use [xunit.v3](https://xunit.net/docs/getting-started/v3/whats-new)
for tests and example code

[Diff between 6.0.4 and
8.0.0](coverlet-coverage/coverlet@v6.0.4...v8.0.0)

Commits viewable in [compare
view](coverlet-coverage/coverlet@v6.0.4...v8.0.0).
</details>

Updated [Microsoft.Bcl.Memory](https://github.com/dotnet/dotnet) from
10.0.2 to 10.0.3.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Bcl.Memory's
releases](https://github.com/dotnet/dotnet/releases)._

No release notes found for this version range.

Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>

Updated
[Microsoft.Extensions.DependencyInjection](https://github.com/dotnet/dotnet)
from 10.0.2 to 10.0.3.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Extensions.DependencyInjection's
releases](https://github.com/dotnet/dotnet/releases)._

No release notes found for this version range.

Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>

Updated
[Microsoft.Extensions.DependencyInjection.Abstractions](https://github.com/dotnet/dotnet)
from 10.0.2 to 10.0.3.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Extensions.DependencyInjection.Abstractions's
releases](https://github.com/dotnet/dotnet/releases)._

No release notes found for this version range.

Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>

Updated
[Microsoft.Extensions.FileSystemGlobbing](https://github.com/dotnet/dotnet)
from 10.0.2 to 10.0.3.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Extensions.FileSystemGlobbing's
releases](https://github.com/dotnet/dotnet/releases)._

No release notes found for this version range.

Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>

Updated
[Microsoft.Extensions.Logging.Abstractions](https://github.com/dotnet/dotnet)
from 10.0.2 to 10.0.3.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Extensions.Logging.Abstractions's
releases](https://github.com/dotnet/dotnet/releases)._

No release notes found for this version range.

Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>

Updated [Microsoft.SourceLink.GitHub](https://github.com/dotnet/dotnet)
from 10.0.102 to 10.0.103.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.SourceLink.GitHub's
releases](https://github.com/dotnet/dotnet/releases)._

## 10.0.103

You can build .NET 10.0 from the repository by cloning the release tag
`v10.0.103` and following the build instructions in the [main
README.md](https://github.com/dotnet/dotnet/blob/v10.0.103/README.md#building).

Alternatively, you can build from the sources attached to this release
directly.
More information on this process can be found in the [dotnet/dotnet
repository](https://github.com/dotnet/dotnet/blob/v10.0.103/README.md#building-from-released-sources).

Attached is the PGP signature for the GitHub generated tarball. You can
find the public key at https://dot.net/release-key-2023

Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits/v10.0.103).
</details>

Updated [System.Collections.Immutable](https://github.com/dotnet/dotnet)
from 10.0.2 to 10.0.3.

<details>
<summary>Release notes</summary>

_Sourced from [System.Collections.Immutable's
releases](https://github.com/dotnet/dotnet/releases)._

No release notes found for this version range.

Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>

Updated [System.IO.Hashing](https://github.com/dotnet/dotnet) from
10.0.2 to 10.0.3.

<details>
<summary>Release notes</summary>

_Sourced from [System.IO.Hashing's
releases](https://github.com/dotnet/dotnet/releases)._

No release notes found for this version range.

Commits viewable in [compare
view](https://github.com/dotnet/dotnet/commits).
</details>

Updated
[Testably.Abstractions.Testing](https://github.com/Testably/Testably.Abstractions)
from 5.1.0 to 5.1.1.

<details>
<summary>Release notes</summary>

_Sourced from [Testably.Abstractions.Testing's
releases](https://github.com/Testably/Testably.Abstractions/releases)._

## 5.1.1

## What's Changed
* chore(deps): update apexskier/github-release-commenter action to
v1.4.1 by @​renovate[bot] in
Testably/Testably.Abstractions#933
* chore(deps): update dependency meziantou.analyzer to 2.0.292 by
@​renovate[bot] in
Testably/Testably.Abstractions#932
* chore(deps): update dependency meziantou.analyzer to 2.0.298 by
@​renovate[bot] in
Testably/Testably.Abstractions#934
* chore(deps): update dependency awexpect to 2.30.0 by @​renovate[bot]
in Testably/Testably.Abstractions#935
* fix: dot file entries not having hidden attribute on mac mock by
@​pw-sgr in Testably/Testably.Abstractions#937


**Full Changelog**:
Testably/Testably.Abstractions@v5.1.0...v5.1.1

Commits viewable in [compare
view](Testably/Testably.Abstractions@v5.1.0...v5.1.1).
</details>

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MacOS: dot files don't get Hidden attribute

2 participants

Comments