2024-04-30 13:47:49 +00:00
|
|
|
|
using Wave.Data;
|
|
|
|
|
|
|
|
|
|
namespace Wave.Tests.Data;
|
|
|
|
|
|
|
|
|
|
[TestFixture, FixtureLifeCycle(LifeCycle.InstancePerTestCase)]
|
|
|
|
|
[TestOf(typeof(Article))]
|
|
|
|
|
public class ArticleTest {
|
|
|
|
|
private Article Article { get; } = new() {
|
|
|
|
|
Author = null!,
|
|
|
|
|
Title = null!,
|
|
|
|
|
Body = null!
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void SlugWithAscii() {
|
|
|
|
|
Article.Title = "Testing Article";
|
|
|
|
|
Article.UpdateSlug();
|
|
|
|
|
Assert.That(Article.Slug, Is.EqualTo("testing-article"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void SlugWithSpecialCharacters() {
|
|
|
|
|
Article.Title = "Title with, special characters?";
|
|
|
|
|
Article.UpdateSlug();
|
Implemented client side article editor (#6)
* started implementing article API, missing lots of tests to validate feature
* made tests more pretty
* re-structured tests
* refactored dto contracts
* tested and fixed updating categories
* added permission tests, fixed bug in Permissions system
* added data validation tests for update article
* refactored repository interface
* Added ArticleView dto, fixed bug in requesting articles over repository
* updated dependencies
* optimized program.cs, added repo service
* Removed all interactivity from ArticleEditor, merged files
* added vite, tailwind working, dev server is not, js is not yet
* added fontsource for font management using vite's bundling
* moved vite output to wwwroot/dist
reorganized stuff that will never need processing or needs to be at site root
* fixed heading font weight not being 700 anymore
* implemented react in ArticleEditor
* added article status steps to react component
noticed I need to figure out client side localization
* fixed vite dev server thingies, tailwind and react refresh works now
* added article form skeletton to react
* more editor implementations
* minor typescript fixes
* implemented proper editor functions
* added all missing toolbar buttons
* fixed error, made open article work
* improved article editor structure
* implemented article editor taking id from the url
* Implemented categories endpoint
* implemented categories in article editor
* fixed minor TS issues
* implemented localization in article editor
* completed localization
* implemented loading selected categories
* minor code improvements and maybe a regex fix
* fixed bug with not getting unpublished articles
* implemented form state
* fixed validation issues
* implemented saving (missing creation)
* fixed minor bug with status display
* organized models
* added live markdown preview (incomplete)
* fixed issues in article create api endpoint
* improved article saving, implemented creating
* fixed publish date not being set correctly when creating article
* fixed slugs once more
* added run config for production (without vite dev)
* removed unused code
* updated dockerfile to build Assets
* fixed slug generation
* updated tests to validate new slug generator
* savsdSACAVSD
* fixed validation issues and tests
2024-06-18 07:09:47 +00:00
|
|
|
|
Assert.That(Article.Slug, Is.EqualTo("title-with-special-characters"));
|
2024-04-30 13:47:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void SlugFromTitleLongerThan64Characters() {
|
|
|
|
|
Article.Title = "Article Title that is longer than the sixty four character limit and should be truncated";
|
|
|
|
|
Article.UpdateSlug();
|
|
|
|
|
Assert.That(Article.Slug, Is.EqualTo("article-title-that-is-longer-than-the-sixty-four-character-limit"));
|
|
|
|
|
}
|
2024-05-02 11:30:18 +00:00
|
|
|
|
|
2024-04-30 14:20:52 +00:00
|
|
|
|
[Test]
|
|
|
|
|
public void SlugFromTitleLongerThan64CharacterWithSpecialCharacterEscapeSize3AtPosition55() {
|
|
|
|
|
Article.Title = "Auto generating slugs was a mistake I hate this ______ €";
|
|
|
|
|
Article.UpdateSlug();
|
Implemented client side article editor (#6)
* started implementing article API, missing lots of tests to validate feature
* made tests more pretty
* re-structured tests
* refactored dto contracts
* tested and fixed updating categories
* added permission tests, fixed bug in Permissions system
* added data validation tests for update article
* refactored repository interface
* Added ArticleView dto, fixed bug in requesting articles over repository
* updated dependencies
* optimized program.cs, added repo service
* Removed all interactivity from ArticleEditor, merged files
* added vite, tailwind working, dev server is not, js is not yet
* added fontsource for font management using vite's bundling
* moved vite output to wwwroot/dist
reorganized stuff that will never need processing or needs to be at site root
* fixed heading font weight not being 700 anymore
* implemented react in ArticleEditor
* added article status steps to react component
noticed I need to figure out client side localization
* fixed vite dev server thingies, tailwind and react refresh works now
* added article form skeletton to react
* more editor implementations
* minor typescript fixes
* implemented proper editor functions
* added all missing toolbar buttons
* fixed error, made open article work
* improved article editor structure
* implemented article editor taking id from the url
* Implemented categories endpoint
* implemented categories in article editor
* fixed minor TS issues
* implemented localization in article editor
* completed localization
* implemented loading selected categories
* minor code improvements and maybe a regex fix
* fixed bug with not getting unpublished articles
* implemented form state
* fixed validation issues
* implemented saving (missing creation)
* fixed minor bug with status display
* organized models
* added live markdown preview (incomplete)
* fixed issues in article create api endpoint
* improved article saving, implemented creating
* fixed publish date not being set correctly when creating article
* fixed slugs once more
* added run config for production (without vite dev)
* removed unused code
* updated dockerfile to build Assets
* fixed slug generation
* updated tests to validate new slug generator
* savsdSACAVSD
* fixed validation issues and tests
2024-06-18 07:09:47 +00:00
|
|
|
|
Assert.That(Article.Slug, Is.EqualTo("auto-generating-slugs-was-a-mistake-i-hate-this-______-"));
|
2024-04-30 14:20:52 +00:00
|
|
|
|
}
|
2024-05-02 11:30:18 +00:00
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void SlugFromTitleLongerThan64CharacterWithSpecialCharacterEscapeSize2AtPosition56() {
|
|
|
|
|
Article.Title = "Auto generating slugs was a mistake I hate this _______ üa";
|
|
|
|
|
Article.UpdateSlug();
|
Implemented client side article editor (#6)
* started implementing article API, missing lots of tests to validate feature
* made tests more pretty
* re-structured tests
* refactored dto contracts
* tested and fixed updating categories
* added permission tests, fixed bug in Permissions system
* added data validation tests for update article
* refactored repository interface
* Added ArticleView dto, fixed bug in requesting articles over repository
* updated dependencies
* optimized program.cs, added repo service
* Removed all interactivity from ArticleEditor, merged files
* added vite, tailwind working, dev server is not, js is not yet
* added fontsource for font management using vite's bundling
* moved vite output to wwwroot/dist
reorganized stuff that will never need processing or needs to be at site root
* fixed heading font weight not being 700 anymore
* implemented react in ArticleEditor
* added article status steps to react component
noticed I need to figure out client side localization
* fixed vite dev server thingies, tailwind and react refresh works now
* added article form skeletton to react
* more editor implementations
* minor typescript fixes
* implemented proper editor functions
* added all missing toolbar buttons
* fixed error, made open article work
* improved article editor structure
* implemented article editor taking id from the url
* Implemented categories endpoint
* implemented categories in article editor
* fixed minor TS issues
* implemented localization in article editor
* completed localization
* implemented loading selected categories
* minor code improvements and maybe a regex fix
* fixed bug with not getting unpublished articles
* implemented form state
* fixed validation issues
* implemented saving (missing creation)
* fixed minor bug with status display
* organized models
* added live markdown preview (incomplete)
* fixed issues in article create api endpoint
* improved article saving, implemented creating
* fixed publish date not being set correctly when creating article
* fixed slugs once more
* added run config for production (without vite dev)
* removed unused code
* updated dockerfile to build Assets
* fixed slug generation
* updated tests to validate new slug generator
* savsdSACAVSD
* fixed validation issues and tests
2024-06-18 07:09:47 +00:00
|
|
|
|
Assert.That(Article.Slug, Is.EqualTo("auto-generating-slugs-was-a-mistake-i-hate-this-_______-a"));
|
2024-05-02 11:30:18 +00:00
|
|
|
|
}
|
2024-04-30 14:20:52 +00:00
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void SlugFromTitleLongerThan64CharacterWithSpecialCharacterEscapeSize3AtPosition56() {
|
|
|
|
|
Article.Title = "Auto generating slugs was a mistake I hate this _______ €";
|
|
|
|
|
Article.UpdateSlug();
|
|
|
|
|
Assert.That(Article.Slug, Is.EqualTo("auto-generating-slugs-was-a-mistake-i-hate-this-_______-"));
|
|
|
|
|
}
|
2024-05-02 11:30:18 +00:00
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void SlugFromTitleLongerThan64CharacterWithSpecialCharacterEscapeSize2AtPosition57() {
|
|
|
|
|
Article.Title = "Auto generating slugs was a mistake I hate this ________ üa";
|
|
|
|
|
Article.UpdateSlug();
|
Implemented client side article editor (#6)
* started implementing article API, missing lots of tests to validate feature
* made tests more pretty
* re-structured tests
* refactored dto contracts
* tested and fixed updating categories
* added permission tests, fixed bug in Permissions system
* added data validation tests for update article
* refactored repository interface
* Added ArticleView dto, fixed bug in requesting articles over repository
* updated dependencies
* optimized program.cs, added repo service
* Removed all interactivity from ArticleEditor, merged files
* added vite, tailwind working, dev server is not, js is not yet
* added fontsource for font management using vite's bundling
* moved vite output to wwwroot/dist
reorganized stuff that will never need processing or needs to be at site root
* fixed heading font weight not being 700 anymore
* implemented react in ArticleEditor
* added article status steps to react component
noticed I need to figure out client side localization
* fixed vite dev server thingies, tailwind and react refresh works now
* added article form skeletton to react
* more editor implementations
* minor typescript fixes
* implemented proper editor functions
* added all missing toolbar buttons
* fixed error, made open article work
* improved article editor structure
* implemented article editor taking id from the url
* Implemented categories endpoint
* implemented categories in article editor
* fixed minor TS issues
* implemented localization in article editor
* completed localization
* implemented loading selected categories
* minor code improvements and maybe a regex fix
* fixed bug with not getting unpublished articles
* implemented form state
* fixed validation issues
* implemented saving (missing creation)
* fixed minor bug with status display
* organized models
* added live markdown preview (incomplete)
* fixed issues in article create api endpoint
* improved article saving, implemented creating
* fixed publish date not being set correctly when creating article
* fixed slugs once more
* added run config for production (without vite dev)
* removed unused code
* updated dockerfile to build Assets
* fixed slug generation
* updated tests to validate new slug generator
* savsdSACAVSD
* fixed validation issues and tests
2024-06-18 07:09:47 +00:00
|
|
|
|
Assert.That(Article.Slug, Is.EqualTo("auto-generating-slugs-was-a-mistake-i-hate-this-________-a"));
|
2024-05-02 11:30:18 +00:00
|
|
|
|
}
|
2024-04-30 14:20:52 +00:00
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void SlugFromTitleLongerThan64CharacterWithSpecialCharacterEscapeSize3AtPosition57() {
|
|
|
|
|
Article.Title = "Auto generating slugs was a mistake I hate this ________ €";
|
|
|
|
|
Article.UpdateSlug();
|
|
|
|
|
Assert.That(Article.Slug, Is.EqualTo("auto-generating-slugs-was-a-mistake-i-hate-this-________-"));
|
|
|
|
|
}
|
|
|
|
|
|
2024-04-30 13:47:49 +00:00
|
|
|
|
[Test]
|
|
|
|
|
public void SlugFromTitleLongerThan64CharacterWithSpecialCharacterAtPosition61() {
|
|
|
|
|
Article.Title = "Article that ends with a special character and need special cäre";
|
|
|
|
|
Article.UpdateSlug();
|
Implemented client side article editor (#6)
* started implementing article API, missing lots of tests to validate feature
* made tests more pretty
* re-structured tests
* refactored dto contracts
* tested and fixed updating categories
* added permission tests, fixed bug in Permissions system
* added data validation tests for update article
* refactored repository interface
* Added ArticleView dto, fixed bug in requesting articles over repository
* updated dependencies
* optimized program.cs, added repo service
* Removed all interactivity from ArticleEditor, merged files
* added vite, tailwind working, dev server is not, js is not yet
* added fontsource for font management using vite's bundling
* moved vite output to wwwroot/dist
reorganized stuff that will never need processing or needs to be at site root
* fixed heading font weight not being 700 anymore
* implemented react in ArticleEditor
* added article status steps to react component
noticed I need to figure out client side localization
* fixed vite dev server thingies, tailwind and react refresh works now
* added article form skeletton to react
* more editor implementations
* minor typescript fixes
* implemented proper editor functions
* added all missing toolbar buttons
* fixed error, made open article work
* improved article editor structure
* implemented article editor taking id from the url
* Implemented categories endpoint
* implemented categories in article editor
* fixed minor TS issues
* implemented localization in article editor
* completed localization
* implemented loading selected categories
* minor code improvements and maybe a regex fix
* fixed bug with not getting unpublished articles
* implemented form state
* fixed validation issues
* implemented saving (missing creation)
* fixed minor bug with status display
* organized models
* added live markdown preview (incomplete)
* fixed issues in article create api endpoint
* improved article saving, implemented creating
* fixed publish date not being set correctly when creating article
* fixed slugs once more
* added run config for production (without vite dev)
* removed unused code
* updated dockerfile to build Assets
* fixed slug generation
* updated tests to validate new slug generator
* savsdSACAVSD
* fixed validation issues and tests
2024-06-18 07:09:47 +00:00
|
|
|
|
Assert.That(Article.Slug, Is.EqualTo("article-that-ends-with-a-special-character-and-need-special-cre"));
|
2024-04-30 13:47:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void SlugFromTitleLongerThan64CharacterWithSpecialCharacterAtPosition62() {
|
|
|
|
|
Article.Title = "Article that ends with a special character and needs special cäre";
|
|
|
|
|
Article.UpdateSlug();
|
Implemented client side article editor (#6)
* started implementing article API, missing lots of tests to validate feature
* made tests more pretty
* re-structured tests
* refactored dto contracts
* tested and fixed updating categories
* added permission tests, fixed bug in Permissions system
* added data validation tests for update article
* refactored repository interface
* Added ArticleView dto, fixed bug in requesting articles over repository
* updated dependencies
* optimized program.cs, added repo service
* Removed all interactivity from ArticleEditor, merged files
* added vite, tailwind working, dev server is not, js is not yet
* added fontsource for font management using vite's bundling
* moved vite output to wwwroot/dist
reorganized stuff that will never need processing or needs to be at site root
* fixed heading font weight not being 700 anymore
* implemented react in ArticleEditor
* added article status steps to react component
noticed I need to figure out client side localization
* fixed vite dev server thingies, tailwind and react refresh works now
* added article form skeletton to react
* more editor implementations
* minor typescript fixes
* implemented proper editor functions
* added all missing toolbar buttons
* fixed error, made open article work
* improved article editor structure
* implemented article editor taking id from the url
* Implemented categories endpoint
* implemented categories in article editor
* fixed minor TS issues
* implemented localization in article editor
* completed localization
* implemented loading selected categories
* minor code improvements and maybe a regex fix
* fixed bug with not getting unpublished articles
* implemented form state
* fixed validation issues
* implemented saving (missing creation)
* fixed minor bug with status display
* organized models
* added live markdown preview (incomplete)
* fixed issues in article create api endpoint
* improved article saving, implemented creating
* fixed publish date not being set correctly when creating article
* fixed slugs once more
* added run config for production (without vite dev)
* removed unused code
* updated dockerfile to build Assets
* fixed slug generation
* updated tests to validate new slug generator
* savsdSACAVSD
* fixed validation issues and tests
2024-06-18 07:09:47 +00:00
|
|
|
|
Assert.That(Article.Slug, Is.EqualTo("article-that-ends-with-a-special-character-and-needs-special-cre"));
|
2024-04-30 13:47:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void SlugFromTitleLongerThan64CharacterWithSpecialCharacterAtPosition63() {
|
|
|
|
|
Article.Title = "Article that ends with a special character and needs special caäre";
|
|
|
|
|
Article.UpdateSlug();
|
Implemented client side article editor (#6)
* started implementing article API, missing lots of tests to validate feature
* made tests more pretty
* re-structured tests
* refactored dto contracts
* tested and fixed updating categories
* added permission tests, fixed bug in Permissions system
* added data validation tests for update article
* refactored repository interface
* Added ArticleView dto, fixed bug in requesting articles over repository
* updated dependencies
* optimized program.cs, added repo service
* Removed all interactivity from ArticleEditor, merged files
* added vite, tailwind working, dev server is not, js is not yet
* added fontsource for font management using vite's bundling
* moved vite output to wwwroot/dist
reorganized stuff that will never need processing or needs to be at site root
* fixed heading font weight not being 700 anymore
* implemented react in ArticleEditor
* added article status steps to react component
noticed I need to figure out client side localization
* fixed vite dev server thingies, tailwind and react refresh works now
* added article form skeletton to react
* more editor implementations
* minor typescript fixes
* implemented proper editor functions
* added all missing toolbar buttons
* fixed error, made open article work
* improved article editor structure
* implemented article editor taking id from the url
* Implemented categories endpoint
* implemented categories in article editor
* fixed minor TS issues
* implemented localization in article editor
* completed localization
* implemented loading selected categories
* minor code improvements and maybe a regex fix
* fixed bug with not getting unpublished articles
* implemented form state
* fixed validation issues
* implemented saving (missing creation)
* fixed minor bug with status display
* organized models
* added live markdown preview (incomplete)
* fixed issues in article create api endpoint
* improved article saving, implemented creating
* fixed publish date not being set correctly when creating article
* fixed slugs once more
* added run config for production (without vite dev)
* removed unused code
* updated dockerfile to build Assets
* fixed slug generation
* updated tests to validate new slug generator
* savsdSACAVSD
* fixed validation issues and tests
2024-06-18 07:09:47 +00:00
|
|
|
|
Assert.That(Article.Slug, Is.EqualTo("article-that-ends-with-a-special-character-and-needs-special-car"));
|
2024-04-30 13:47:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void SlugProvidedValidUri() {
|
|
|
|
|
Article.Title = "Testing providing a slug";
|
|
|
|
|
Article.UpdateSlug("test-slug");
|
|
|
|
|
Assert.That(Article.Slug, Is.EqualTo("test-slug"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void SlugProvidedNeedsEscaping() {
|
|
|
|
|
Article.Title = "Testing providing a slug";
|
|
|
|
|
Article.UpdateSlug("test slug");
|
|
|
|
|
Assert.That(Article.Slug, Is.EqualTo("test-slug"));
|
|
|
|
|
}
|
|
|
|
|
}
|