Comments (9)
I've implemented helper function which works together with attribute and structural directives:
// Extracting mock.
const debugElement = fixture.debugElement.query(By.css('div'));
const directive = MockHelper.getDirective(
debugElement,
MockDirective(CustomNgIfDirective),
);
expect(directive).toBeTruthy();
if (!directive) {
return;
}
from ng-mocks.
Maybe throw something on the directive host?
from ng-mocks.
Hey @satanTime
I've been messing around with this trying to come up with a solution and nothing I've tried has worked out for me. Do you happen to have any ideas on how this could be accomplished?
from ng-mocks.
Hi. Very good question.
I've never written any structural directive. But if it's true as docs explain: https://angular.io/guide/structural-directives#inside-ngfor (they're syntax sugar), I think your library already has almost everything, except a way to pass context
to ng-template
override values in let-...
syntax.
The same thing I use in some my templates with let-
and had idea one day to investigate how we can mock let-...
, currently I don't cover 100% components with let-...
in ng-template
.
Once we have way to control let-...
I think we can control structural directives too.
from ng-mocks.
It does have support for structural directives but the problem is that these directives aren't available on the host element's injector, unlike normal attribute directives. This makes getting the directive back out of the debug element in the test to assert on inputs challenging (if possible).
At this point I'd settle with throwing a data attribute on the host with the directive name and inputs but I had issues with that as well. 🤷🏻♂️
from ng-mocks.
Aha :) good to know. Let me dive inside one day to check how it works. Is there any branch where I could check what you'd tried before?
from ng-mocks.
Good luck! https://github.com/ike18t/ng-mocks/tree/structural
from ng-mocks.
☣
from ng-mocks.
Hi @ike18t, how do you do?
Might you review possible solution? #40
Please don't merge it, I want to find a way how to select related directive in more easier way as you have in your example: const debugElement = fixture.debugElement.query(By.css('#example-structural-directive'));
, instead of iterating through everything.
from ng-mocks.
Related Issues (20)
- Bug: MockInstance won't override values for InjectionToken HOT 1
- Bug: Overwriting defaultMock of 'get' or readonly property results in `Property ... does not have access type get` HOT 2
- Bug: Memory Leak HOT 2
- Bug: MockInstance doesn't manipulate the instance (findInstance works though) HOT 1
- MockInstance is not clear how spy methods get assigned Bug: HOT 1
- Feature Request: Should ngMocks set signals mocks to singal(null) rather than null? HOT 2
- Bug: Mocking standalone components may cause warnings HOT 6
- Feature Request: Support EnvironmentProviders in provide and HttpInterceptorFn exemple HOT 2
- Bug: MockInstance.scope(); is mentioned in "Getting started" doc although being unnecessary nowadays(?) HOT 7
- Bug: Angular 16 ngMocks.findInstance swallows original error HOT 2
- Bug: MockedComponentFixture is actually assignable to ComponentFixture contrary to what doc says HOT 3
- Feature Request: docs how to add a new angular version HOT 1
- Bug: ngMocks.findInstance unable to find instance (Angular 17) HOT 19
- Bug: Unable to install ng-mocks with Angular 17 HOT 9
- Bug: Unable to correctly import TranslocoTestingModule.forRoot in component unit test HOT 2
- Feature request: Schematics HOT 1
- Update docs about animation HOT 8
- Tests on standalone component fails after update to 14.12.0 HOT 10
- Feature Request: improve docs about `await fixture.whenStable();` HOT 1
- Bug: investigate the issue HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ng-mocks.