178 search results

Resetting the Database

…log file instead: logFile=var/log/deprecations.log. Close that up. Now when we run the tests: Clean and tidy! And the deprecations are still waiting for us in the log file. Next: let's leverage Foundry Factories to make seeding our database an absolute delight!

4:47
Emails Assertions in Functional Tests

…before, this may look a tad different because I'm using some rocking helper libraries. zenstruck/foundry gives us this ResetDatabase trait which wipes the database before each test. It also gives us this Factories trait which lets us create database fixtures in our tests…

6:01
JSON Test Assertions & Seeding the Database

…the database is empty. To make our test real, we need data: we need to seed the database with data at the start of the test. Fortunately, Foundry makes that dead-simple. At the top, call DragonTreasureFactory::createMany() and let's create 5 treasures. Now…

3:41
The Repository Test Helper

Foundry comes with a nice trick for this. After we call the method, say LockDownFactory. Normally, we would call things like create or createMany, but this also has a method on it named repository. This returns an object from Foundry that wraps the repository - much…

5:13
Translatable Mapping

…when we switch to French on our site, we'll display some mock French data, just like we currently have mock English data. We need to create a factory using Foundry. So, run: symfony console make:factory Create a factory for the Translation entity: 0…

5:19
Customizing the User Class

…users to our database using the fixtures system. Open up src/DataFixtures/AppFixtures.php. We're using Foundry to help us load data. So let's create a new Foundry factory for User. Since we're having SO much fun running commands in this video…

3:08
Hashing Plain Passwords & PasswordCredentials

…property... but then the password property would stay null... and it would explode in the database because that column is required. So after Foundry has finished instantiating the object, we need to run some extra code that reads the plainPassword and hashes it. We can…

4:22
Simple Doctrine Data Fixtures

…stuff. But for developing, I want a really rich set of data fixtures, like... maybe 25 mixes. We could add those by hand here... or even create a loop. But there's a better way, via a library called "Foundry". Let's explore it next!

3:25
Writing an Integrational Test for Webhooks

…the test environment. Our test is failing because we need to set up a test database. We could do this manually using Doctrine console commands, but let's take advantage of Zenstruck Foundry, which we already have installed. In the test class, add use ResetDatabase…

7:16
App & Test Setup

…to use Symfony 5.1 and API platform 2.5: I also added Foundry to our system, which is a new library that makes it really easy to create dummy data: We're using Foundry inside of our data fixtures - so src/DataFixtures/AppFixtures.php -…

7:44
Saving Items in a ManyToMany Relation

…they are not related to any questions in the database because we never set the owning side of the relationship. So... let's put that code back. Next: let's use Foundry to create a bunch of Tag objects and randomly relate them to questions.

6:36
Publishing a Listing

…for the JSON body, send isPublished set to true: And... the status code we expect is 200: So here's the flow: we create a User - via the Foundry library - and then create a CheeseListing. Oh, but we don't want that published() method: that…

6:02
Creating the User Class

…explore a registration form later, but for now, let's use a Foundry factory for local development. Create the factory with: symfony console make:factory Select our User entity. Open src/Factory/UserFactory.php. I think we can improve these defaults a bit! For email…

7:27
PHP 8.4 & Recipe Updates

…from Doctrine. We'll have a whole chapter on upgrading Doctrine a little later, so we'll ignore these for now. The fourth one is a deprecated config option from zenstruck/foundry. Before manually fixing this, let's first update our Symfony Flex recipes. Sometimes…

11:21
Mapped Superclasses

…scout. Let's see how this plays out when we reload the fixtures for our app. Run: symfony console foundry:load-fixtures Here's a snag: we can't instantiate the abstract class Starship. We're using Foundry factories, and since Starship is now abstract…

4:05
Cosmic Queries: the Repository Class

…second is the findAll() from findMyShip(). Perfect! Next, let's improve our fixtures and make them 100 times more fun with a library called Foundry. This will let us create a whole fleet of Starships as if we had a replicator. Let's do it!

5:15
Running Code "On Publish"

… At the end of the test, say NotificationFactory - that's a Foundry factory that I created, ::repository() - to get a repository helper - then ->assert()->count(1). With Foundry, our database is always empty at the start of a test: so checking for 1 row is…

6:05
Testing a Service

…created the $lockDown variable through Foundry, it's wrapped in a Proxy. One of the main features of a Proxy is called "auto-refreshing". Each time you access a property or call a method on your entity, behind the scenes, Foundry queries for the latest…

7:31
Bootstrapping a Killer Test System

…But that's way too much work. Instead, add one more trait to our test class: use ResetDatabase: This comes from Foundry: the library we've been using to create dummy fixtures via the factory classes. ResetDatabase is amazing. It automatically makes sure that the…

8:18
Data Fixtures

…especially once you have database relationships where objects are linked to other objects... these classes can get ugly fast. And they're not much fun to write. So, next: let's use a shiny new library called Foundry to create numerous, random, rich dummy data.

5:18