Skip to content

Commit 91b5528

Browse files
Add integration test for IPageClient Create API ✅
1 parent d500d68 commit 91b5528

File tree

3 files changed

+101
-0
lines changed

3 files changed

+101
-0
lines changed

Notion.sln

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
1616
.editorconfig = .editorconfig
1717
EndProjectSection
1818
EndProject
19+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Notion.IntegrationTests", "Test\Notion.IntegrationTests\Notion.IntegrationTests.csproj", "{E0E2D7D5-E2AD-4587-AE88-BA5812A90451}"
20+
EndProject
1921
Global
2022
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2123
Debug|Any CPU = Debug|Any CPU
@@ -50,13 +52,26 @@ Global
5052
{B3AE07EA-49CC-4A86-A2D4-04E1FF00AB04}.Release|x64.Build.0 = Release|Any CPU
5153
{B3AE07EA-49CC-4A86-A2D4-04E1FF00AB04}.Release|x86.ActiveCfg = Release|Any CPU
5254
{B3AE07EA-49CC-4A86-A2D4-04E1FF00AB04}.Release|x86.Build.0 = Release|Any CPU
55+
{E0E2D7D5-E2AD-4587-AE88-BA5812A90451}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
56+
{E0E2D7D5-E2AD-4587-AE88-BA5812A90451}.Debug|Any CPU.Build.0 = Debug|Any CPU
57+
{E0E2D7D5-E2AD-4587-AE88-BA5812A90451}.Debug|x64.ActiveCfg = Debug|Any CPU
58+
{E0E2D7D5-E2AD-4587-AE88-BA5812A90451}.Debug|x64.Build.0 = Debug|Any CPU
59+
{E0E2D7D5-E2AD-4587-AE88-BA5812A90451}.Debug|x86.ActiveCfg = Debug|Any CPU
60+
{E0E2D7D5-E2AD-4587-AE88-BA5812A90451}.Debug|x86.Build.0 = Debug|Any CPU
61+
{E0E2D7D5-E2AD-4587-AE88-BA5812A90451}.Release|Any CPU.ActiveCfg = Release|Any CPU
62+
{E0E2D7D5-E2AD-4587-AE88-BA5812A90451}.Release|Any CPU.Build.0 = Release|Any CPU
63+
{E0E2D7D5-E2AD-4587-AE88-BA5812A90451}.Release|x64.ActiveCfg = Release|Any CPU
64+
{E0E2D7D5-E2AD-4587-AE88-BA5812A90451}.Release|x64.Build.0 = Release|Any CPU
65+
{E0E2D7D5-E2AD-4587-AE88-BA5812A90451}.Release|x86.ActiveCfg = Release|Any CPU
66+
{E0E2D7D5-E2AD-4587-AE88-BA5812A90451}.Release|x86.Build.0 = Release|Any CPU
5367
EndGlobalSection
5468
GlobalSection(SolutionProperties) = preSolution
5569
HideSolutionNode = FALSE
5670
EndGlobalSection
5771
GlobalSection(NestedProjects) = preSolution
5872
{BF5F85F3-901C-40B0-8357-A1919F89AE2E} = {4A92506A-3CF1-4E86-B9FD-D5F109655D87}
5973
{B3AE07EA-49CC-4A86-A2D4-04E1FF00AB04} = {F474CF12-E2AC-4388-B764-BAE891D307B8}
74+
{E0E2D7D5-E2AD-4587-AE88-BA5812A90451} = {F474CF12-E2AC-4388-B764-BAE891D307B8}
6075
EndGlobalSection
6176
GlobalSection(ExtensibilityGlobals) = postSolution
6277
SolutionGuid = {3C5C8AC9-88CA-4079-BC0B-C1A81248B0B1}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Threading.Tasks;
5+
using FluentAssertions;
6+
using Notion.Client;
7+
using Xunit;
8+
9+
namespace Notion.IntegrationTests
10+
{
11+
public class IPageClientTests
12+
{
13+
[Fact]
14+
public async Task CreateAsync_CreatesANewPage()
15+
{
16+
var options = new ClientOptions
17+
{
18+
AuthToken = Environment.GetEnvironmentVariable("NOTION_AUTH_TOKEN")
19+
};
20+
21+
IPagesClient _client = new PagesClient(new RestClient(options));
22+
23+
PagesCreateParameters pagesCreateParameters = PagesCreateParametersBuilder.Create(new DatabaseParentInput
24+
{
25+
DatabaseId = "f86f2262-0751-40f2-8f63-e3f7a3c39fcb"
26+
})
27+
.AddProperty("Name", new TitlePropertyValue
28+
{
29+
Title = new List<RichTextBase>
30+
{
31+
new RichTextText
32+
{
33+
Text = new Text
34+
{
35+
Content = "Test Page Title"
36+
}
37+
}
38+
}
39+
})
40+
.Build();
41+
42+
var page = await _client.CreateAsync(pagesCreateParameters);
43+
44+
page.Should().NotBeNull();
45+
page.Parent.Should().BeOfType<DatabaseParent>().Which
46+
.DatabaseId.Should().Be("f86f2262-0751-40f2-8f63-e3f7a3c39fcb");
47+
48+
page.Properties.Should().ContainKey("Name");
49+
page.Properties["Name"].Should().BeOfType<TitlePropertyValue>().Which
50+
.Title.First().PlainText.Should().Be("Test Page Title");
51+
52+
await _client.UpdateAsync(page.Id, new PagesUpdateParameters
53+
{
54+
Archived = true
55+
});
56+
}
57+
}
58+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net5.0</TargetFramework>
5+
<Nullable>enable</Nullable>
6+
7+
<IsPackable>false</IsPackable>
8+
</PropertyGroup>
9+
10+
<ItemGroup>
11+
<ProjectReference Include="..\..\Src\Notion.Client\Notion.Client.csproj" />
12+
</ItemGroup>
13+
14+
<ItemGroup>
15+
<PackageReference Include="FluentAssertions" Version="5.10.3" />
16+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.4" />
17+
<PackageReference Include="xunit" Version="2.4.1" />
18+
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
19+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
20+
<PrivateAssets>all</PrivateAssets>
21+
</PackageReference>
22+
<PackageReference Include="coverlet.collector" Version="3.0.2">
23+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
24+
<PrivateAssets>all</PrivateAssets>
25+
</PackageReference>
26+
</ItemGroup>
27+
28+
</Project>

0 commit comments

Comments
 (0)