ProductPromotion
Logo

Angular.JS

made by https://0x3d.site

GitHub - remscodes/ngx-testing-tools: ๐Ÿ› ๏ธ Provides high-level utilities and reduces boilerplate for testing Angular applications
๐Ÿ› ๏ธ Provides high-level utilities and reduces boilerplate for testing Angular applications - remscodes/ngx-testing-tools
Visit Site

GitHub - remscodes/ngx-testing-tools: ๐Ÿ› ๏ธ Provides high-level utilities and reduces boilerplate for testing Angular applications

GitHub - remscodes/ngx-testing-tools: ๐Ÿ› ๏ธ Provides high-level utilities and reduces boilerplate for testing Angular applications

github ci codecov coverage npm version bundle size license

In a nutshell

This library aims to reduce boilerplate ๐Ÿ˜Ž and provides high-level tools๏ธ ๐Ÿ”ฅ for testing Component, Guard, Interceptor and everything else related to the Angular mechanism.

It makes tests easier to read ๐Ÿ˜Œ and faster to write โšก๏ธ!

Quick examples

Testing Component

describe('AppComponent', () => {
  const tb = componentTestBed(AppComponent) // ๐Ÿ› ๏ธ Create the test bed which is re-compiled for each test
    .inject('prefs', Preferences); // ๐Ÿ–‡๏ธ Link a key to an injection for all tests, see below ๐Ÿ‘‡

  it('should render title', tb(({ component, query }) => { // ๐Ÿ”‹ Access enhanced tools for testing components 
    expect(component.title).toEqual('app-v17');
    const span = query.findElement('.content span');
    expect(span.textContent).toContain('app-v17 app is running!');
  }));

  it('should update preferences on click', tb(({ action, injected: { prefs } }) => { // ๐Ÿคฏ Retrieve injections by autocompletion
    expect(prefs.approved).toBeFalse();
    action.click('#my-button');
    expect(prefs.approved).toBeTrue();
  }));
});

๐Ÿซก (The redundant "should create" test is even called up for you!)

Testing Service

describe('AppService', () => {
  const tb = serviceTestBed(AppService, { httpTesting: true }); // ๐Ÿ› ๏ธ Create the test bed and enable http testing

  it('should fetch cat fact', tb(({ service, http, rx }, done) => {
    const mockRes = { fact: 'string', length: 6 };

    rx.remind = service.getCatFact().subscribe({ // ๐Ÿงฏ Use rx.remind to auto unsubscribe after the end of the test
      next: (res) => {
        expect(res).toEqual(mockRes);
        done();
      },
    });

    http.emitSuccessResponse({ url: service.CAT_FACT_URL, body: mockRes }); // ๐ŸŽญ Fake the http response of the request that matches the url
  }));
});

Installation

npm install --save-dev ngx-testing-tools

Documentation

Visit the docs at https://remscodes.github.io/ngx-testing-tools.

Demo

Check demo .spec.ts files.

Version compatibility

Compatible with Angular >= 15.2.x.

What's next ? ๐Ÿคฉ

  • More custom test beds :
    • ResolverTestBed
  • Mocks
  • Angular schematics

License

MIT ยฉ Rรฉmy Abitbol.

More Resources
to explore the angular.

mail [email protected] to add your project or resources here ๐Ÿ”ฅ.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here ๐Ÿ”.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory