Skip to content

Ref's in unit test not mocked #220

@Jay-diehl

Description

@Jay-diehl

Hi,

I have the following unit test. In the macros I have overwritten the ref function with the DBT unit test version. However when I run the unit test it doesn't mock the data for the tables and it expects all the rows. I have verified all the columns & data types. Anybody has a good way to debug the issue?

-- depends_on: {{ ref('stg_visma__werknemers') }}
-- depends_on: {{ ref('int_visma__contract_data') }}
-- depends_on: {{ ref('int_visma__functie_rooster_historie') }}
-- depends_on: {{ ref('stg_portal__kostenplaats_visma_mapping') }}
-- depends_on: {{ ref('int_fourps__werknemers') }}
-- depends_on: {{ ref('int_easyjob__werknemers') }}

{% set options = {"include_missing_columns": false} %}

{{ config(tags=['test-test2', 'int-unit-tests'], enabled = true) }}

{% call dbt_unit_testing.test('int_werknemers', 'Check if the total overview is created correct.') %}

{% call dbt_unit_testing.mock_ref('stg_visma__werknemers', options = options)   %}
SELECT 1                  AS werknemer_id,
       'John'             AS voornaam,
       'Doe'              AS achternaam,
       'John Doe'         AS volledige_naam,
       '1990-01-01'::date AS geboortedatum,
       '2020-01-01'::date AS datum_in_dienst,
       'vast'             AS vast_of_inlener
UNION ALL
SELECT 2                  AS werknemer_id,
       'Jane'             AS voornaam,
       'Doe'              AS achternaam,
       'Jane Doe'         AS volledige_naam,
       '1991-01-01'::date AS geboortedatum,
       '2021-01-01'::date AS datum_in_dienst,
       'inlener'          AS vast_of_inlener
{% endcall %}

{% call dbt_unit_testing.mock_ref('int_visma__contract_data', options = options) %}
SELECT 1                     AS werknemer_id,
       0.7::double precision AS parttime_factor,
       'A1'                  AS kostenplaats,
       'Piet'                AS manager,
       '2020-01-01'::date    AS datum_in_dienst,
       '2021-12-31'::date    AS datum_uit_dienst,
       0                     AS contract_onderbreking
UNION ALL
SELECT 2                     AS werknemer_id,
       0.8::double precision AS parttime_factor,
       'ELEKTRO/ELEKTRO'     AS kostenplaats,
       'Piet'                AS manager,
       '2021-01-01'::date    AS datum_in_dienst,
        NULL::date           AS datum_uit_dienst,
        1                    AS contract_onderbreking
{% endcall %}

{% call dbt_unit_testing.mock_ref('int_visma__functie_rooster_historie', options = options) %}
SELECT 1                    AS werknemer_id,
       '2020-12-31'::date   AS datum,
        8::double precision AS geplande_uren,
       'Engineer'           AS functie
UNION ALL
SELECT 2                    AS werknemer_id,
       '2021-12-31'::date   AS datum,
        8::double precision AS geplande_uren,
       'Analyst'            AS functie
{% endcall %}

{% call dbt_unit_testing.mock_ref('stg_portal__kostenplaats_visma_mapping', options = options) %}
SELECT 'ELEKTRO/ELEKTRO' AS visma_kostenplaats,
       '2-10'            AS kostenplaats_id
{% endcall %}

{% call dbt_unit_testing.mock_ref('int_fourps__werknemers', options = options) %}
SELECT 'W1'                  AS werknemer_id,
       1                     AS parsed_werknemer_id,
       'John'                AS voornaam,
       'Doe'                 AS achternaam,
       'John Doe'            AS volledige_naam,
       'Engineer'            AS functie,
       'norm'                AS boekings_type,
       160::double precision AS norm_uren,
       '111'                 AS kostenplaats_id,
       '2020-01-01'::date    AS datum_indiensttreding,
       NULL::date            AS datum_uitdiensttreding,
       'vast'                AS vast_of_inlener
UNION ALL
SELECT '3'                   AS werknemer_id,
       3                     AS parsed_werknemer_id,
       'Mark'                AS voornaam,
       'Spencer'             AS achternaam,
       'Mark Spencer'        AS volledige_naam,
       'Analyst'             AS functie,
       'norm'                AS boekings_type,
       120::double precision AS norm_uren,
       '222'                 AS kostenplaats_id,
       '2022-01-01'::date    AS datum_indiensttreding,
       NULL::date            AS datum_uitdiensttreding,
       'inlener'             AS vast_of_inlener
{% endcall %}

{% call dbt_unit_testing.mock_ref('int_easyjob__werknemers', options = options) %}
SELECT '2020-01-01'::date AS datum_in_dienst,
       NULL::date         AS datum_uit_dienst,
       '99'               AS easyjob_adres_id,
       99                 AS easyjob_werknemer_id,
       99                 AS easyjob_tijdkaart_werknemer_id,
       99                 AS visma_werknemer_id,
       'Mark'             AS voornaam,
       'Spencer'          AS achternaam,
       '222'              AS kostenplaats_id,
       'Mark Spencer'     AS volledige_naam,
       1                  AS row
UNION ALL
SELECT '2020-01-01'::date AS datum_in_dienst,
        NULL::date         AS datum_uit_dienst,
        '56'               AS easyjob_adres_id,
       56                 AS easyjob_werknemer_id,
       56                 AS easyjob_tijdkaart_werknemer_id,
       NULL               AS visma_werknemer_id,
       'Piet'             AS voornaam,
       'Friet'            AS achternaam,
       '222'              AS kostenplaats_id,
       'Piet Friet'       AS volledige_naam,
       1                  AS row
{% endcall %}

{% call dbt_unit_testing.expect() %}
    SELECT
           1                  AS visma_werknemer_id,
           'W1'               AS fourps_werknemer_id,
           NULL               AS easyjob_adres_id,
           NULL::int          AS easyjob_werknemer_id,
           NULL::int          AS easyjob_tijdkaart_werknemer_id,
           '1990-01-01'::date AS geboortedatum,
           'Engineer'         AS functie_4ps,
           'Engineer'         AS functie_visma,
           'norm'             AS boekings_type,
           160                AS norm_uren,
           '2020-01-01'::date AS datum_in_dienst,
           '2021-12-31'::date AS datum_uit_dienst,
           'Piet'             AS manager,
           0.7                AS parttime_factor,
           'A1'               AS visma_kostenplaats,
           '111'              AS kostenplaats_werknemer_id,
           'vast'             AS vast_of_inlener,
           'Engineer'         AS functie,
           1                  AS werknemer_id,
           'John Doe'         AS volledige_naam,
           'John'             AS voornaam,
           'Doe'              AS achternaam,
           'Visma'            AS bronsysteem
    UNION ALL
    SELECT 2                  AS visma_werknemer_id,
           NULL               AS fourps_werknemer_id,
           NULL               AS easyjob_adres_id,
           NULL::int          AS easyjob_werknemer_id,
           NULL::int          AS easyjob_tijdkaart_werknemer_id,
           '1991-01-01'::date AS geboortedatum,
           NULL               AS functie_4ps,
           'Analyst'          AS functie_visma,
           NULL               AS boekings_type,
           NULL               AS norm_uren,
           '2021-01-01'::date AS datum_in_dienst,
           NULL::date         AS datum_uit_dienst,
           'Piet'             AS manager,
           0.8                AS parttime_factor,
           'ELEKTRO/ELEKTRO'  AS visma_kostenplaats,
           '2-10'             AS kostenplaats_werknemer_id,
           'inlener'          AS vast_of_inlener,
           'Analyst'          AS functie,
           2                  AS werknemer_id,
           'Jane Doe'         AS volledige_naam,
           'Jane'             AS voornaam,
           'Doe'              AS achternaam,
           'Visma'            AS bronsysteem
    UNION ALL
    -- Check if the full outer join exists for 4ps.
    SELECT NULL           AS visma_werknemer_id,
           '3'            AS fourps_werknemer_id,
           NULL           AS easyjob_adres_id,
           NULL::int      AS easyjob_werknemer_id,
           NULL::int      AS easyjob_tijdkaart_werknemer_id,
           NULL::date     AS geboortedatum,
           'Analyst'      AS functie_4ps,
           NULL           AS functie_visma,
           'norm'         AS boekings_type,
           120            AS norm_uren,
           NULL::date     AS datum_in_dienst,
           NULL::date     AS datum_uit_dienst,
           NULL           AS manager,
           NULL           AS parttime_factor,
           NULL           AS visma_kostenplaats,
           '222'          AS kostenplaats_werknemer_id,
           'inlener'      AS vast_of_inlener,
           'Analyst'      AS functie,
           3              AS werknemer_id,
           'Mark Spencer' AS volledige_naam,
           'Mark'         AS voornaam,
           'Spencer'      AS achternaam,
           '4PS'          AS bronsysteem
    UNION ALL
    -- Check if the full outer join exists for easyjob.
    SELECT
           NULL           AS visma_werknemer_id,
           NULL           AS fourps_werknemer_id,
           '56'           AS easyjob_adres_id,
           56             AS easyjob_werknemer_id,
           56             AS easyjob_tijdkaart_werknemer_id,
           NULL::date     AS geboortedatum,
           NULL           AS functie_4ps,
           NULL           AS functie_visma,
           NULL           AS boekings_type,
           NULL           AS norm_uren,
           NULL::date     AS datum_in_dienst,
           NULL::date     AS datum_uit_dienst,
           NULL           AS manager,
           NULL           AS parttime_factor,
           NULL           AS visma_kostenplaats,
           '222'          AS kostenplaats_werknemer_id,
           NULL           AS vast_of_inlener,
           'Geen functie' AS functie,
           56             AS werknemer_id,
           'Piet Friet'   AS volledige_naam,
           'Piet'         AS voornaam,
           'Friet'        AS achternaam,
           'EasyJob'      AS bronsysteem
    UNION ALL
    SELECT
        NULL           AS visma_werknemer_id,
        NULL           AS fourps_werknemer_id,
        '99'           AS easyjob_adres_id,
        99             AS easyjob_werknemer_id,
        99             AS easyjob_tijdkaart_werknemer_id,
        NULL::date     AS geboortedatum,
        NULL           AS functie_4ps,
        NULL           AS functie_visma,
        NULL           AS boekings_type,
        NULL           AS norm_uren,
        NULL::date     AS datum_in_dienst,
        NULL::date     AS datum_uit_dienst,
        NULL           AS manager,
        NULL           AS parttime_factor,
        NULL           AS visma_kostenplaats,
        '222'          AS kostenplaats_werknemer_id,
        NULL           AS vast_of_inlener,
        'Geen functie' AS functie,
        99             AS werknemer_id,
        'Mark Spencer' AS volledige_naam,
        'Mark'         AS voornaam,
        'Spencer'      AS achternaam,
        'EasyJob'      AS bronsysteem
{% endcall %}

{% endcall %}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions